我做了一个应用程序,用户可以上传图像,使用jCrop裁剪,然后通过电子邮件发送给他。 一切都按预期工作,但创建图像的php脚本似乎在裁剪/调整大小时会降低质量。这并不是极端的,但我需要与上传的图像相同的分辨率。我有imagejpg()并用imagepng()改变它,但没有成功。 也许你可以帮助我。 下面的代码:php创建图像像素化
list($oWidth, $oHeight) = getimagesize($_POST["hiddenSrc"]);
$xPos = $_POST["x1h"];
$yPos = $_POST["y1h"];
$targ_w = $_POST["wh"];
$targ_h = $_POST["hh"];
$jpeg_quality = 9;
$src = $_POST["hiddenSrc"];
if(mime_content_type($src) == "image/jpeg")
{
$img_r = imagecreatefromjpeg($src);
}
else if(mime_content_type($src) == "image/png")
{
$img_r = imagecreatefrompng($src);
}
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);
imagecopyresampled($dst_r,$img_r,0,0,$xPos,$yPos,$targ_w,$targ_h,$targ_w,$targ_h);
if(!file_exists('../FOLDER/'.$_SESSION['foldername'].'/PRODUKT'.$_SESSION['productNameCount'].'.png'))
{
imagepng($dst_r,"../FOLDER/".$_SESSION['foldername']."/PRODUKT".$_SESSION['productNameCount'].".png",$jpeg_quality);
}
脚本的其余部分只是创造不与图像
非常感谢相关的文件夹和其他的东西!
其余的只是一些决定图像不是太小等功能。
这里的前/对比:
我知道其中的差别是很小的,但是当图像被印
顺便说一句,请记住,在区分大小写的文件系统上(在Unix服务器上常见),您检查存在的文件将与您正在编写的文件不同,因为您已在一个地方编写了“produkt”,而“PRODUKT”在另一个。您应该一次创建路径作为变量并在两个地方使用。 –
jep,你说得对,谢谢。我修正了它;) – user2839873