2

嘿,

假设我想将图像转换为精确尺寸,例如:400x300。诀窍是,如果图像由于其纵横比不适合 400x300,则将其放置在带有黑色边框的位置。

一个 900x1200 的图像将被转换为 225x300 以保持其纵横比,然后在左右两侧添加黑色边框以使其成为 400x300。

原始照片:

|||||||||||||||||||||||  
|||||||||||||||||||||||  
|||||||||||||||||||||||  
|||||||||||||||||||||||  
|||||||||||||||||||||||  
|||||||||||||||||||||||  
|||||||||||||||||||||||  
|||||||||||||||||||||||  

调整大小后,我想看起来像这样:

_______________________
|+++++++++++++++++++++|
|+++++++++++++++++++++|
|+++++++++++++++++++++|
|+++++++||||||||++++++|
|+++++++||||||||++++++|
|+++++++++++++++++++++|
|+++++++++++++++++++++|
|_____________________|

的:“+++++++”我想要一些颜色,和“|||||||” 是图像,在中间!

不幸的是,我还没有任何代码!

我想要这样的东西:http: //phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php#x22 谢谢

4

3 回答 3

3

熟悉这些gd功能,让您可以操作图像。

您需要使用其中一种imagecreatefrom...功能读取图像。然后,您需要创建第二张图像,例如,使用您选择的颜色填充imagecreatetruecolor该图像。然后使用 将原始图像复制到新图像中,这样您就可以在此过程中调整其大小。你需要事先用一些简单的数学计算新的大小,这些函数可以帮助你。imagecopyresampledgetimagesize

或者,使用ImageMagickgd类,它是您可能会或可能不会更容易使用的替代方法。

祝你好运!:)

于 2010-07-09T01:57:38.737 回答
0

创建一个样式为黑色背景的 div,大小为 400x300。然后在该 div 中显示调整大小的图像。您甚至可以在显示 div 之前添加检查以确保图像不是所需的方面。

像这样的东西:

<? 
$height-ratio = $height / 300;
$width-ratio = $width / 400;

if ($height-ratio == $width-ratio) {
 $ratio = $height-ratio;
} elseif ($height-ratio > $width-ratio) {
 $ratio = $height-ratio;
 echo "<div class='blackbox'>";
} else {
 $ratio = $width-ratio;
 echo "<div class='blackbox'>";
}

$newHeight = $height / $ratio;
$newWidth = $width / $ratio;
echo "<img src='".$imgSrc."' height='".$newHeight."' width='".$newWidth."' />";

if ($height-ratio != $width-ratio)
 echo "</div>";
?>

支持css:

.blackbox { 
 text-align: center;
 background-color: black;
 height: 300px;
 width: 400px;
}
于 2010-07-09T01:56:55.120 回答
-2

我非常喜欢提前编辑图片并将其调整为我想要的大小,而不是在渲染时设置宽度和高度。性能更好,您不必担心不同的浏览器可能会以不同的方式处理它。

因此,如果您没有图像编辑程序,请获取 Paint.net。免费且运行良好。

于 2010-07-09T01:54:52.507 回答