обрезать изображение после изменения размера в библиотеке GD

Мне нужно сначала изменить размер изображения пропорционально (ширина – важное измерение), а затем обрезать потом, чтобы нарезать лишнюю высоту, а затем сохранить новую версию в каталоге.

Мне удалось сделать изменение размера, и в итоге я получаю изображения, которые являются правильной шириной в моем каталоге. Кто-то здесь, мне нужно обрезать лишнюю высоту. Но я не могу решить, где мне нужно это делать. Нужно ли каким-то образом использовать copyimageresampled. Я хочу обрезать все изображения, чтобы они имели высоту 50 пикселей.

Вот что я имею до изменения размера:

$src = ImageCreateFromJpeg($upfile); $dst = ImageCreateTrueColor($tn_width, $tn_height); ImageCopyResized($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height); ImageJpeg($dst, 'images/' . $_FILES['image']['name']); 

Solutions Collecting From Web of "обрезать изображение после изменения размера в библиотеке GD"

Это то, чем я был. Двухэтапный процесс. Фокус в том, чтобы изменить размер изображения на временное изображение, а затем обрезать его:

http://salman-w.blogspot.com/2009/04/crop-to-fit-image-using-aspphp.html

Это может помочь вам обрезать после изменения размера: 911-need-code-help

 <?php //---------------------------------------------------------------- // Crop-to-fit PHP-GD // Revision 2 [2009-06-01] // Corrected aspect ratio of the output image //---------------------------------------------------------------- define( 'DESIRED_IMAGE_WIDTH', 150 ); define( 'DESIRED_IMAGE_HEIGHT', 150 ); $source_path = $_FILES[ 'Image1' ][ 'tmp_name' ]; // // Add file validation code here // list( $source_width, $source_height, $source_type ) = getimagesize( $source_path ); switch ( $source_type ) { case IMAGETYPE_GIF: $source_gdim = imagecreatefromgif( $source_path ); break; case IMAGETYPE_JPEG: $source_gdim = imagecreatefromjpeg( $source_path ); break; case IMAGETYPE_PNG: $source_gdim = imagecreatefrompng( $source_path ); break; } $source_aspect_ratio = $source_width / $source_height; $desired_aspect_ratio = DESIRED_IMAGE_WIDTH / DESIRED_IMAGE_HEIGHT; if ( $source_aspect_ratio > $desired_aspect_ratio ) { // // Triggered when source image is wider // $temp_height = DESIRED_IMAGE_HEIGHT; $temp_width = ( int ) ( DESIRED_IMAGE_HEIGHT * $source_aspect_ratio ); } else { // // Triggered otherwise (ie source image is similar or taller) // $temp_width = DESIRED_IMAGE_WIDTH; $temp_height = ( int ) ( DESIRED_IMAGE_WIDTH / $source_aspect_ratio ); } // // Resize the image into a temporary GD image // $temp_gdim = imagecreatetruecolor( $temp_width, $temp_height ); imagecopyresampled( $temp_gdim, $source_gdim, 0, 0, 0, 0, $temp_width, $temp_height, $source_width, $source_height ); // // Copy cropped region from temporary image into the desired GD image // $x0 = ( $temp_width - DESIRED_IMAGE_WIDTH ) / 2; $y0 = ( $temp_height - DESIRED_IMAGE_HEIGHT ) / 2; $desired_gdim = imagecreatetruecolor( DESIRED_IMAGE_WIDTH, DESIRED_IMAGE_HEIGHT ); imagecopy( $desired_gdim, $temp_gdim, 0, 0, $x0, $y0, DESIRED_IMAGE_WIDTH, DESIRED_IMAGE_HEIGHT ); // // Render the image // Alternatively, you can save the image in file-system or database // header( 'Content-type: image/jpeg' ); imagejpeg( $desired_gdim ); // // Add clean-up code here // ?> 

Croping – это как изменение размера с помощью GD

Некоторые примеры кода:

 // Original image $filename = 'someimage.jpg'; // Get dimensions of the original image list($current_width, $current_height) = getimagesize($filename); // The x and y coordinates on the original image where we // will begin cropping the image $left = 50; $top = 50; // This will be the final size of the image (eg how many pixels // left and down we will be going) $crop_width = 200; $crop_height = 200; // Resample the image $canvas = imagecreatetruecolor($crop_width, $crop_height); $current_image = imagecreatefromjpeg($filename); imagecopy($canvas, $current_image, 0, 0, $left, $top, $current_width, $current_height); imagejpeg($canvas, $filename, 100); 

Вы определяете свою ширину и высоту обрезки и должны быть установлены. Это не более чем изменение размера, как вы можете видеть.

Ссылка: http://www.johnconde.net/blog/cropping-an-image-with-php-and-the-gd-library/