首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP图像操作

PHP图像操作
EN

Stack Overflow用户
提问于 2011-05-02 20:47:05
回答 3查看 261关注 0票数 1

我正在试图弄清楚imgur.com是如何构建他们的画廊的(在主页右侧的那个)。

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

因此,我不能只是将上传的图片的高度和宽度更改为100px/100px,因为比例不同。

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

谢谢,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-02 20:54:55

计算缩略图大小...

代码语言:javascript
运行
复制
$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写得很好,并且提供了简单的裁剪、调整大小、镜像、旋转等功能:)

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

票数 4
EN

Stack Overflow用户

发布于 2011-05-02 20:54:43

在您的本地计算机上安装imagick并使用它,它可以做您所要求的一切。询问X或Y是如何做到这一点没有太大帮助,因为每种技术都是不同的,在PHP (你选择的标签)中,你可以用imagick来做到这一点。

票数 3
EN

Stack Overflow用户

发布于 2017-09-15 03:18:39

这可以使用ImageArtist中的内置方法非常容易地完成,这是一个纯粹的gd包装器。

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

下面是一个示例代码。

代码语言:javascript
运行
复制
$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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5857279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档