2015-02-13 2 views
0

Так что я пытаюсь использовать imagecopyresampled, чтобы вырезать часть фотографии, так что мне не нужно беспокоиться о том, что мои пользователи загружают фотографии, большие, чем предназначенные для моего сайта. К сожалению, мне еще предстоит выяснить, почему imagecopyresampled в основном ведет себя, как будто я просто изменил размер изображения с помощью CSS. По моему мнению, он должен копировать только часть изображения по 0,0 на основе координат, которые я предоставил для 325X300 px jpg.imagecopyresampled не работает не знаю почему

: example

Верхнее изображение является один я использую imagecopyresampled для генерации. Мой код выглядит следующим образом. Просто пытаюсь понять, что я делаю неправильно здесь, потому что, по-видимому, у моей копии GD нет imagecrop, иначе я бы, вероятно, использовал это.

<html> 
<style> 
.sample{ 
    width: 325; 
    height: 300; 
} 
</style> 
<body> 
<?php 
$image = imagecreatefromjpeg('Image6.jpg'); 
$filename = 'Thumbnail_Image6.jpeg'; 

$width = 325; 
$height = 300; 
$oldwidth = imagesx($image); 
$oldheight = imagesy($image); 
if($oldwidth > 325 || $oldheight > 300){ 
$thumb = ImageCreateTrueColor(325, 300); 
imagecopyresampled($thumb, $image, 0, 0, 0, 0, 325, 300, $oldwidth, $oldheight); 
imagejpeg($thumb, $filename, 100); 
echo "<img src='".$filename."'><br>"; 
echo "<img class='sample' src='Image6.jpg'><br>"; 
} 
?> 
</body> 

</html> 

ответ

0

Если вы собираетесь обрезать изображение, вам не нужно использовать полный размер изображения.

imagecopyresampled($thumb, $image, 0, 0, 0, 0, 325, 300, 325, 300); 
+0

Ах, я думал, что imagecopyresampled необходим полный размер изображения в качестве аргумента. Спасибо. – NoobWebDev

1

В основном потому, что ваш размер источника полный размер исходного изображения, так что это изменение размера его вместо того, чтобы брать кусок из. Попробуйте это, чтобы увидеть, что я имею в виду:

imagecopyresampled($thumb, $image, 0, 0, 0, 0, $width, $height, $width, $height); 

Вы можете компенсировать кусок, сменив источник x и y значения. Пример:

imagecopyresampled($thumb, $image, 0, 0, 50, 50, $width, $height, $width, $height); 
Смежные вопросы