【问题标题】:Image processing class in PHPPHP中的图像处理类
【发布时间】:2010-01-10 23:43:47
【问题描述】:

我需要构建一个 PHP 照片处理类,我知道有很多已经存在于公众中,但我需要构建一个来做我需要做的事情,没有额外的,也没有更少。

我需要我的班级来做这件事......

1)
我创建了我的类的一个新实例,并传入照片的 URL,或使用 POST 表单上传的本地照片的路径。

2)
然后我需要拍摄主图像并检查它的尺寸,如果它比 800 像素更宽,我需要调整它的大小,如果它不宽然后 800 那么我就离开它

3)
我们现在需要从这张图片构建 2 个不同大小的缩略图,如果我们调整图片的大小以满足我们 800 像素的要求,那么我们使用该图片制作缩略图,否则我们从原始图片制作缩略图。

4)
然后我们更新一些数据库记录

然后完成。

我知道这并不难,但我需要在构建它时考虑到最佳性能,例如,如果用户上传一张 2mb 的照片,我不想占用内存并继续从该照片构建缩略图,如果我们已经制作了一个较小的图像,我认为它应该使用较小的图像来构建缩略图。

现在有了所有这些信息,您对如何在 GD 或 imagemagick 中执行此操作有什么建议吗?如果我制作了一个制作缩略图的方法,我应该如何确保它继续使用较小的图像来制作其他较小的图像?我查看了一些现有的图像类,它们都非常复杂,而且 IMO 做得过头了,但是没有一个能完全完成这个简单的任务。

【问题讨论】:

  • 好吧,您已经用您的问题概述了程序流程。您所要做的就是在 ImageMagick 或 GD 中找到函数并创建一个 Thumbnailer 服务类。

标签: php class gd imagemagick


【解决方案1】:

PHP GD 库使用资源对象来表示图像。您可以使用imagecopyresampledimagecopyresized 调整图像大小。

如果已调整大小,则使用新调整大小的图像对象进行后续操作,否则使用原始资源对象。

【讨论】:

    猜你喜欢
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多