Почему мое Изображение простирается, когда я обрезаю его?

Я использую следующий фрагмент кода для обрезки изображения?

   function crop($width,$height) {
       $new_image = imagecreatetruecolor($width, $height);
       imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $this->getWidth(), $this->getHeight(), $width, $height );
       $this->image = $new_image;
   }

Здесь, $this->image исходное изображение $this->getWidth() и $this->getHeight() содержит исходные размеры изображения, где как $width и $height, область обрезки.

Но по некоторым причинам, изображение обрезки изменено (мы можем почти сказать, что оно изменено).

Как зафиксировать это?

1
задан Starx 16 June 2010 в 13:08
поделиться

2 ответа

Ну, проблема заключается в предоставлении размеров источника. Указание размеров всего изображения позволит изменить размер вместо обрезки.

Это должно решить проблему

   function crop($width,$height) {
       $new_image = imagecreatetruecolor($width, $height);
       imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $width, $height );
       $this->image = $new_image;
   }
4
ответ дан 2 September 2019 в 23:44
поделиться

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

-2
ответ дан 2 September 2019 в 23:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: