PHP GD - 调整图像框架/画布的大小,但不是实际图像

Posted

技术标签:

【中文标题】PHP GD - 调整图像框架/画布的大小,但不是实际图像【英文标题】:PHP GD - resizing image frame/canvas but not the actual image 【发布时间】:2012-01-06 10:28:31 【问题描述】:

我有一个尺寸为 88x31 的图像,并希望将其设置为 100x100,而不调整实际图像的大小,而只调整其画布/框架,可能通过将其复制到新的 100x100 大小的空白图像的中心。有什么想法吗?

【问题讨论】:

不要重新发明***,使用现有代码:github.com/avalanche123/Imagine,但如果您坚持,已经回答了关于 SO 的大量类似问题。 Create a picture with GD containing other images的可能重复 Imagine 的问题是我的 php 目前还没有命名空间支持,我还不想升级,但谢谢。 不抗拒未来!升级! ;-) 但说真的,这个问题得到解决的次数比贾斯汀比伯的粉丝还多。如果 SO 对您来说还不够,请查看 Google google.fi/search?q=gd+wrapper+php 或 imagecopy 的 PHP 手册页 fi.php.net/manual/en/function.imagecopy.php 是的,我现在知道了,谢谢 nikc.org 【参考方案1】:

正确的方法是创建一个新的图像,然后将旧图像复制到它的中间(假设起始图像是JPEG并且小于100x100):

$oldimage = imagecreatefromjpeg($filename);
$oldw = imagesx($oldimage);
$oldh = imagesy($oldimage);

$newimage = imagecreatetruecolor(100, 100); // Creates a black image

// Fill it with white (optional)
$white = imagecolorallocate($newimage, 255, 255, 255);
imagefill($newimage, 0, 0, $white);

imagecopy($newimage, $oldimage, (100-$oldw)/2, (100-$oldh)/2, 0, 0, $oldw, $oldh);

【讨论】:

【参考方案2】:

你可以在这里看到:Thumbnail generation with PHP tutorial

【讨论】:

以上是关于PHP GD - 调整图像框架/画布的大小,但不是实际图像的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中调整 PHP GD 生成的图像的大小并显示它

PHP调整图像大小固定大小但保持方向

使用 PHP GD 调整图像大小并保存图像。这段代码有啥问题?

使用 PHP GD lib 压缩和调整图像大小不适用于 png 和 jpg 的奇怪结果

PHP 文件上传:调整图像大小并在新画布上重新定位

如何使用 PHP 的 GD 库对图像执行接缝雕刻?