仅显示图像的某些部分并使用GD调整其大小

时间:2011-03-23 12:05:05

标签: php image resize gd

我目前有一个准备好的脚本,可以使用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);

?>

但是这个没有选择正确的图像部分。谁能在这帮助我?

2 个答案:

答案 0 :(得分:2)

为什么(-8,-8)?这些应该是您要复制的区域的左上角。它应该是8,8。最后两个参数:(64,32)是源区域的宽度和高度。那些也应该是8,8。

imagecopyresampled ($destp, $srcp, 0, 0, 8, 8, 150, 150, 8, 8);

我假设您的源图像是由8x8单位构建的。你应该检查photosop中的坐标。

我建议你阅读documentation of the function。如果事情没有按照你的预期进行,那么这就是你做的第一件事。

答案 1 :(得分:0)

$srcp = imagecreatefrompng("enjikaka.png");
$destp = imagecreate(150, 150);
imagecopy($despt, $srcp, $dst_x , $dst_y , $src_x , $src_y , $src_w , $src_h);

我认为您应该在脚本中包含对imagecopy的调用,该调用应该处理图像的裁剪。