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 GD 调整图像大小并保存图像。这段代码有啥问题?