仅显示图像的某些部分并使用 GD 调整其大小
Posted
技术标签:
【中文标题】仅显示图像的某些部分并使用 GD 调整其大小【英文标题】:Display only certain part of an image and resize it with GD 【发布时间】:2011-03-23 12:05:05 【问题描述】:我目前准备好了一个脚本,可以使用 GD 调整整个图像的大小,但我需要获取图像的特定部分以仅显示该特定部分并调整其大小。
这是图片:
http://craffy.gdscei.com/enjikaka.png
这是需要显示的,剩下的用Photoshop去掉:
http://craffy.gdscei.com/enjikakap.png
最终图像需要为 150x150。
这是我尝试过的脚本:
<?php
$srcp = imagecreatefrompng("enjikaka.png");
$destp = imagecreate(150, 150);
imagecopyresampled($destp, $srcp, 0, 0, -8, -8, 150, 150, 64, 32);
header('Content-type: image/png');
imagepng($destp);
?>
但是这个没有选择图像的正确部分。有人可以帮我吗?
【问题讨论】:
【参考方案1】:为什么是 (-8, -8)?这些应该是您要复制的区域的左上角。它应该是 8, 8。最后两个参数: (64, 32) 是源区域的宽度和高度。应该是8,8也是。
imagecopyresampled ($destp, $srcp, 0, 0, 8, 8, 150, 150, 8, 8);
我在这里假设您的源图像由 8x8 单位构成。您应该检查照片中的坐标。
我建议你阅读documentation of the function。当事情没有按您的预期进行时,您应该首先做的事情。
【讨论】:
【参考方案2】:$srcp = imagecreatefrompng("enjikaka.png");
$destp = imagecreate(150, 150);
imagecopy($despt, $srcp, $dst_x , $dst_y , $src_x , $src_y , $src_w , $src_h);
我认为您应该在脚本中包含对 imagecopy 的调用,它应该处理图像的裁剪。
【讨论】:
不起作用,显示空白页:craffy.gdscei.com/ppic.php,我使用的代码:$srcp = imagecreatefrompng("enjikaka.png");$destp = imagecreate(150, 150);imagecopy($destp, $srcp, 0, 0, -8 -8, 64, 32);header('Content-type: image/png');imagepng($destp);
那些 -8 坐标看起来很可疑,但不确定是否是导致问题的原因以上是关于仅显示图像的某些部分并使用 GD 调整其大小的主要内容,如果未能解决你的问题,请参考以下文章