[英]How to crop this image?
我有这个图像,
我想将此图像裁剪为多种尺寸,因为我使用此功能 -
function thumbanail_for_image($Id, $newfilename, $size=NULL) {
$file_extension = substr($newfilename, strrpos($newfilename, '.') + 1);
$arr = explode('.', $newfilename);
$thumb1 = LOCAL_FOLDER . $arr[0] . "_" . $Id . "." . $file_extension;
$thumb2 = LOCAL_FOLDER . $arr[0] . "_" . $Id . "b" . "." . $file_extension;
$old = LOCAL_FOLDER . $newfilename;
$newfilename = LOCAL_FOLDER . $newfilename;
$srcImage = "";
$sizee = getimagesize($newfilename);
switch ($sizee['mime']) {
case "image/jpeg" :
$srcImage = imagecreatefromjpeg($old);
break;
case "image/png":
$srcImage = imagecreatefrompng($old);
break;
case "image/gif":
$srcImage = imagecreatefromgif($old);
break;
}
$srcwidth = $sizee[0];
$srcheight = $sizee[1];
if ($srcwidth > $srcheight || $srcwidth < $srcheight) {
$destwidth1 = 65;
$rat = $destwidth1 / $srcwidth;
$destheight1 = (int) ($srcheight * $rat);
}
elseif ($srcwidth == $srcheight) {
$destwidth1 = 65;
$destheight1 = 65;
}
if ($srcwidth > $srcheight || $srcwidth < $srcheight) {
$destwidth2 = 300;
$rat = $destwidth2 / $srcwidth;
$destheight2 = (int) ($srcheight * $rat);
}
elseif ($srcwidth == $srcheight) {
$destwidth2 = 300;
$destheight2 = 300;
}
$destImage1 = imagecreatetruecolor($destwidth1, $destheight1);
$destImage2 = imagecreatetruecolor($destwidth2, $destheight2);
imagecopyresampled($destImage1, $srcImage, 0, 0, 0, 0, $destwidth1, $destheight1, $srcwidth, $srcheight);
imagecopyresampled($destImage2, $srcImage, 0, 0, 0, 0, $destwidth2, $destheight2, $srcwidth, $srcheight);
if ($sizee['mime'] == "image/jpeg") {
imagejpeg($destImage1, $thumb1, 80);
imagejpeg($destImage2, $thumb2, 80);
} elseif ($sizee['mime'] == "image/png") {
imagepng($destImage1, $thumb1, 80);
imagepng($destImage2, $thumb2, 80);
} elseif ($sizee['mime'] == "image/gif") {
imagegif($destImage1, $thumb1, 80);
imagegif($destImage2, $thumb2, 80);
}
imagedestroy($destImage1);
imagedestroy($destImage2);
chmod($destImage1, 0777);
chmod($destImage2, 0777);
return $destImage1;
}
LOCAL_FOLDER是本地的可变路径
我看到的问题是当我打印$ _FILES信息时显示
[type] =>image/jpeg
当我打印getimagesize()函数时,它会打印出来
[mime] => image/png
请帮忙,谢谢
为什么不使用为你处理所有这些事情的lib?
例如,查看WideImage :
include "path-to/WideImage.php";
$image = WideImage::load("path-to/image.jpg");
$cropped = $image->crop(0, 0, 100, 50);
$cropped->saveToFile("cropped-image.jpg");
PHP的POST方法上传页面说:
$ _FILES [ 'userfile的'] [ '类型']
文件的mime类型,如果浏览器提供了此信息。 一个例子是“image / gif”。 但是,在PHP端没有检查这个mime类型,因此不会将其值视为理所当然。
所以这里的图像类型数据是由上传文件的客户端提供的,PHP建议不要信任它。 相信getimagesize()
会给你什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.