Я использую следующий фрагмент кода для обрезки изображения?
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
, область обрезки.
Но по некоторым причинам, изображение обрезки изменено (мы можем почти сказать, что оно изменено).
Как зафиксировать это?
Ну, проблема заключается в предоставлении размеров источника. Указание размеров всего изображения позволит изменить размер вместо обрезки.
Это должно решить проблему
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;
}
Вот что делает imagecopyresampled: изменяет масштаб изображения и не обрезает его. Попробуйте вместо этого копировать изображения.