2010-12-23 32 views
1

我从Flash中导出一些图像,然后在php中调整它们的大小。我正在使用GD库来做到这一点。然而,我有一些难以得到的大小正确...有些是风景,有些是肖像,我甚至有大小的divs,他们需要投入。PHP GD库,将图像周围放置白色区域

所以,当我调整它们到一定的高度时,有一些是(例如)150px x 30px,一些是30px x 150px。问题是在CSS中垂直对齐。

我认为解决方法是在图像周围放置空白区域,以便它们都测量相同的宽度和高度,但图像在中间垂直和水平居中。

GD库的最佳做法是什么?

+0

到目前为止你做了什么? :) – Trufa 2010-12-23 02:08:29

回答

0

这里是我写的函数的链接,它可以帮助您将任意大小的图像调整为任意大小。该功能还允许您裁剪或适合您的图像,以便使其适合所需的宽高比。

https://www.spotlesswebdesign.com/blog.php?id=1

如果这会有所帮助,请选择旁边这个答案的复选标记。谢谢!

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的具体详细信息。

0

采取这个stackoverflow question你需要你的新图像的尺寸仔细看,你的原始图像的尺寸和计算公式,基本上,

$startx=($newx_size/2)-($oldx_size/2),  
$starty=($newy_size/2)-($oldy_size/2) 

你开始x和y的中间点的新图像(newX和newY除以2)减去调整大小的图像的高度/宽度($ oldx和oldy每个除以2)。首先调整它们的大小,获得它们的新维度并相应地放置它们。