我想弄清楚imgur.com是如何构建他们的画廊(在右边的主页上的)。PHP图像处理
我的问题是,我想从图像中创建缩略图库,但我希望宽高比正确,使图像看起来不奇怪。
因此,我不能只是采取上传的图像,并将比例不同的高度和宽度更改为100px/100px。
他们裁剪图像,然后创建一个缩略图?他们如何裁剪?他们如何设定作物比例?
感谢,
我想弄清楚imgur.com是如何构建他们的画廊(在右边的主页上的)。PHP图像处理
我的问题是,我想从图像中创建缩略图库,但我希望宽高比正确,使图像看起来不奇怪。
因此,我不能只是采取上传的图像,并将比例不同的高度和宽度更改为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。它的docs写得很好,它提供了简单的裁剪,调整大小,镜像,旋转等。:)
请注意,WideImage和PHP文档中记录的其他图像功能需要GD扩展安装在您的服务器上。
在本地计算机上安装imagick和玩它,它可以做所有你问的。对于X或Y是如何做这件事并没有什么帮助,因为每种技术都有不同的表现,在PHP(你选择的标签)中,你可以用imagick做到这一点。
这可以很容易地使用内置的方法在ImageArtist这是一个纯粹的OO包装。
在Imagick上使用GD的优势在于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);
也许你应该提到这是一个php gd函数! – markus 2011-05-02 12:56:44
它不需要gd库,至少docs状态是... – usoban 2011-05-02 13:03:23
真的,不知道,我的坏。 – markus 2011-05-02 13:04:37