我从Flash中导出一些图像,然后在php中调整它们的大小。我正在使用GD库来做到这一点。然而,我有一些难以得到的大小正确...有些是风景,有些是肖像,我甚至有大小的divs,他们需要投入。PHP GD库,将图像周围放置白色区域
所以,当我调整它们到一定的高度时,有一些是(例如)150px x 30px,一些是30px x 150px。问题是在CSS中垂直对齐。
我认为解决方法是在图像周围放置空白区域,以便它们都测量相同的宽度和高度,但图像在中间垂直和水平居中。
GD库的最佳做法是什么?
我从Flash中导出一些图像,然后在php中调整它们的大小。我正在使用GD库来做到这一点。然而,我有一些难以得到的大小正确...有些是风景,有些是肖像,我甚至有大小的divs,他们需要投入。PHP GD库,将图像周围放置白色区域
所以,当我调整它们到一定的高度时,有一些是(例如)150px x 30px,一些是30px x 150px。问题是在CSS中垂直对齐。
我认为解决方法是在图像周围放置空白区域,以便它们都测量相同的宽度和高度,但图像在中间垂直和水平居中。
GD库的最佳做法是什么?
这里是我写的函数的链接,它可以帮助您将任意大小的图像调整为任意大小。该功能还允许您裁剪或适合您的图像,以便使其适合所需的宽高比。
https://www.spotlesswebdesign.com/blog.php?id=1
如果这会有所帮助,请选择旁边这个答案的复选标记。谢谢!
在这种情况下,只需创建一个150x150的图像,用白色填充它,然后将图像粘贴到该新图像的适当位置。
$src = imagecreatefromjpeg(...); // your flash exported image
$dst = imagecreatetruecolor(150,150); // new blank 150x150 image
imagefill($dst, 0, 0, 0xFFFFFF); // flood fill with white
$new_x = ...
$new_y = ... // figure out resizing parameters for the $src image
imagecopyresampled($dst, $src, ...);
imagejpeg($dst, 'resized.jpg');
copyresampled参数here的具体详细信息。
采取这个stackoverflow question你需要你的新图像的尺寸仔细看,你的原始图像的尺寸和计算公式,基本上,
$startx=($newx_size/2)-($oldx_size/2),
$starty=($newy_size/2)-($oldy_size/2)
你开始x和y的中间点的新图像(newX和newY除以2)减去调整大小的图像的高度/宽度($ oldx和oldy每个除以2)。首先调整它们的大小,获得它们的新维度并相应地放置它们。
到目前为止你做了什么? :) – Trufa 2010-12-23 02:08:29