PHP图像处理


PHP Image manipulation

我想弄清楚imgur.com是如何建立他们的图库的(主页右边的那个)

我的问题是,我想从我拥有的图像创建一个缩略图画廊,但我希望宽度/高度比例是正确的,所以图像不会看起来很奇怪。

所以我不能把上传的图片的高度和宽度更改为100px/100px,因为比例不同。

他们裁剪图像,然后创建缩略图吗?他们是怎么收割的?他们如何设定收割比例?

谢谢,

计算缩略图大小…

$sizes = getimagesize('img.jpg');
$w = $sizes[0];
$h = $sizes[1];
$new_w = 200; // some value
$new_h = $h * ($new_w / $w);
http://www.php.net/manual/en/function.getimagesize.php

或者,如果您想裁剪图像,可以使用一些PHP库。我推荐WigeImage。它的文档写得很好,它提供了简单的裁剪、调整大小、镜像、旋转等功能:)

注意,在PHP文档中记录的WideImage和其他图像函数需要在服务器上安装GD扩展。

在您的本地机器上安装imagick并使用它,它可以完成您要求的所有操作。询问X或Y如何做到这一点并没有多大帮助,因为每种技术都有不同的做法,在PHP中(您选择的标签)您可以使用imagick.

这可以很容易地在ImageArtist中使用内置方法,这是一个纯粹的OO包装器。

使用GD优于Imagick的优点是GD扩展得到广泛的托管提供商的支持,因此您的代码在本地大部分时间运行良好,托管后运行良好。

这里是一个示例代码。

$img = new Image("./cover.jpg");
$img->scaleToWidth(100);  // make the width 100px and make sure to resize height accroding to the ratio
$img->scaleToHeight(100);  // make the hegith 100px and make sure to resize width accroding to the ratio
/* if you want to crop the image */
$img->crop(5,5,90,90);  // this will crop a rectangle keeping 5px border
/* finally save it */
$img2->save("./final.png",IMAGETYPE_PNG);