gpt4 book ai didi

php调整图像大小然后裁剪图像问题

转载 作者:行者123 更新时间:2023-12-04 22:12:48 24 4
gpt4 key购买 nike

我想将图片大小从 600px * 500px 减小到 60px * 50px 大小,然后将其裁剪为 50px *50px。我有两组代码,一组是缩小图像的大小,另一组是裁剪图像。问题是它们是分开工作的,如何将这两组代码组合起来使它们一起工作?以下是我的代码:

<?php

//codes of group A - Reduce the size of image from 600px * 500px to 60px * 50px
$save2 = "images/users/" . $image_name_2; //This is the new file you saving
list($width2, $height2) = getimagesize($file) ;
$modwidth2 = 50;
$diff2 = $width2 / $modwidth2;
$modheight2 = $height2 / $diff2;
$tn2 = imagecreatetruecolor($modwidth2, $modheight2) ;
$image2 = imagecreatefromjpeg($file) ;
imagecopyresampled($tn2, $image2, 0, 0, 0, 0, $modwidth2, $modheight2, $width2, $height2) ;
imagejpeg($tn2, $save2, 100) ;



//codes of group B - Crop the image from 60px * 50px to 50px * 50px
$save3 = "images/users/" . $image_name_3;
list($width3, $height3) = getimagesize($file) ;
$modwidth3 = 60;
$diff3 = $width3 / $modwidth3;
$modheight3 = $height3 / $diff3;

$left = 0;
$top = 0;

$cropwidth = 50; //thumb size
$cropheight = 50;

$tn3 = imagecreatetruecolor($cropwidth, $cropheight) ;
$image3 = imagecreatefromjpeg($file) ;
imagecopyresampled($tn3, $image3, 0, 0, $left, $top, $cropwidth, $cropheight, $modwidth3, $modheight3) ;
imagejpeg($tn3, $save3, 100) ; //save the cropped image
?>

从上面的两组代码中可以看出,第一组调整图片大小,然后将其保存到文件夹中。第二组代码裁剪图片,然后将其保存到文件夹中。我的问题是......在第一组代码调整图片大小后,是否有必要将其保存到文件夹中才能裁剪它?如果有必要,那么我需要编写新的代码行以从文件夹中检索调整大小的图片,以便第二组代码进行裁剪?如果没有必要,在调整图片大小后,如何将图片传递给第二组代码以裁剪它?

最佳答案

你是@zac1987。
完整 PHP 代码生成所需大小的方形缩略图而不拉伸(stretch)图像。该代码支持 png 和 jpg/jpeg 图像扩展。只需将设置部分更改为所需的部分。您可以复制粘贴代码并在您的网络服务器上进行测试。

<?php

// SETTINGS
$image_name = 'file.jpg'; // Full path and image name with extension
$thumb_name = 'thumbnail'; // Generated thumbnail name without extension
$thumb_side = 100; // Desired thumbnail side size
// END OF SETTINGS

$image_extension = explode('.', $image_name); // I assume that images are named only following 'imagename.ext' pattern

if (preg_match('/jpg|jpeg/', $image_extension[1])) {
$src_image = imagecreatefromjpeg($image_name);
$image_extension = 'jpg';
} else if (preg_match('/png/', $image_extension[1])) {
$src_image = imagecreatefrompng($image_name);
$image_extension = 'png';
}

$src_width = imageSX($src_image); // Width of the original image
$src_height = imageSY($src_image); // Height of the original image

$min_side = min($src_width, $src_height);

/*********** If you need this part uncomment it
$ratio = $min_side / $thumb_width;
$new_width = floor($src_width / $ratio);
$new_height = floor($src_height / $ratio);
**********************************************/

$dst_image = imagecreatetruecolor($thumb_side, $thumb_side);

imagecopyresampled($dst_image, $src_image, 0, 0, 0, 0, $thumb_side, $thumb_side, $min_side, $min_side);

switch ($image_extension)
{
case 'jpg':
imagejpeg($dst_image, $thumb_name . '.jpg', 100);
break;
case 'png':
imagepng($dst_image, $thumb_name . '.jpg', 100);
break;
}

imagedestroy($src_image);
imagedestroy($dst_image);

?>

关于php调整图像大小然后裁剪图像问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5941792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com