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

发布于 2024-10-25 13:03:59 字数 767 浏览 1 评论 0原文

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

?>

但是这个脚本没有选择图像的正确部分。有人可以帮我吗?

I currently have a script ready that resizes a whole image with GD but I need to get a specific part of an image to display and resize only that specific part.

This is the image:

http://craffy.gdscei.com/enjikaka.png

This is what needs to be displayed, took out the rest with Photoshop:

http://craffy.gdscei.com/enjikakap.png

The final image needs to be 150x150.

This is the script i tried:

<?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);

?>

But this one does not pick the correct part of the image. Can anyone help me here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倾听心声的旋律 2024-11-01 13:03:59

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

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

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

我建议您阅读该函数的文档。当事情没有按你的预期发展时,这应该是你做的第一件事。

Why the (-8, -8)? Those should be the upper left corner of your area to copy. It should be 8, 8. And the last two parameters: (64, 32) are the width and height of your source area. Those should be 8, 8 too.

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

I assume here that your source image is built up by 8x8 units. You should check the coordinates in photosop.

I suggest you read the documentation of the function. That shopuld be the first thing you do when things do not go as you expected.

孤君无依 2024-11-01 13:03:59
$srcp = imagecreatefrompng("enjikaka.png");
$destp = imagecreate(150, 150);
imagecopy($despt, $srcp, $dst_x , $dst_y , $src_x , $src_y , $src_w , $src_h);

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

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

I think you should include this call to imagecopy in your script, which should handle the cropping of the image.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文