我从flash导出一些图像,然后在php中调整它们的大小。我正在使用GD库来执行此操作。然而,我在缩小尺寸方面遇到了一些困难...有些是风景,有些是肖像,我甚至还有需要放入的大小的div。
因此,当我将它们调整到某个高度时,有一些(例如)150px x 30px,有些则是30px x 150px。问题在于css中的垂直对齐。
我认为解决方案是在图像周围放置空白,以便它们都测量相同的宽度和高度,但图像在中间垂直和水平居中。
使用GD库执行此操作的最佳方法是什么?
答案 0 :(得分: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的确切详情。
答案 1 :(得分: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)。首先调整它们的大小,得到它们的新的尺寸并相应地放置它们。
答案 2 :(得分:0)
这是我编写的函数的链接,它可以帮助您将任何大小的图像调整为任意大小。该功能还允许您裁剪图像或信箱,以使其符合所需的宽高比。
https://www.spotlesswebdesign.com/blog.php?id=1
如果这有帮助,请选择此答案旁边的复选标记。谢谢!