来源于:http://trac.seagullproject.org/wiki/Howto/WorkingWithImages

处理图像

简介

Seagull 0.6.2 有一些用来处理图像的新工具。目前Media 模块就是使用它的功能来进行图像处理。图片上传后的常见处理包括:

  • 使图像大小保持一致 (不超过XxY)
  • 创建缩略图
  • 给版权图像添加水印
  • 使所有图像保持和XxY一致大小,画布的其它部分用背景色填充,把原始图像放在中间(在弹出式窗口中显示组合式图表时很有用)
  • 应用边界 (也可以用 CSS 设置,但是我们这样可以减少标签),
  • 上面所提到的所有特性

上面所提到的特性在Seagull中已经成为可能

包结构

文件

  • 主要的库文件 - Image.php (在SGL_CORE_DIR目录中)
  • transformations文件 - ImageTransform 目录,包含转换文件 (位于SGL_CORE_DIR),
  • 测试文件 (位于SGL_CORE_DIR/tests):
        o ImageTest.ndb.php,
        o ImageConfigTest.ndb.php,
        o ImageTransformStrategyTest.ndb.php,
        o image.ini,
        o chicago.jpg, 
  • GD_SGL.php - 驱动器 (位于SGL_LIB_PEAR_DIR/Image/Transform/Driver).

  • SGL_Image - 主类,执行策略,创建缩略图
  • SGL_ImageConfig - 用来配置SGL_Image的类,如 解析ini文件,从字符串中提取策略参数
  • SGL_ImageTransformStrategy - 抽象的策略,它被下列类继承
        o SGL_ImageTranform_ResizeStrategy - 调整大小策略
        o SGL_ImageTranform_AddImageStrategy - strategy for adding images across the original one,
        o SGL_ImageTranform_ColorOverlayStrategy - overlays image with color,
        o SGL_ImageTranform_AddBorderStrategy - 添加边界策略
        o SGL_ImageTranform_CanvasResizeStrategy - 调整画布大小策略
  • Image_Transform_Driver_GD_SGL - 驱动器,继承了由PEAR::Image_Transform 包提供的原始GD驱动器所提供的一些功能。

Api(应用程序接口)

代码实例

转换

图像处理工具的主要特性是使用驱动器转换特定图像和缩略图的能力。 驱动器是使用五个默认的转换策略的GD_SGL,也可以是任何PEAR::Image_Transform可提供的其它驱动器。理论上讲一个图像可以用两种不同的驱动器使用两个不同的策略进行转换。如,用 GD 调整大小用 NetPBM 旋转。开发人员可以轻易地继承SGL_ImageTransformStrategy抽象类。

下面是使用现成五个的转换功能的一个图像转换的例子,这五个现成的转换功能是:

:howto:transformation_examples.jpg

  • 原始图像被调整大固定大小
  • 使用指定的背景颜色填充扩大的画布部分
  • 颜色覆盖(从右下角)
  • 添加了水印
  • 应用边界

配置

Howto/WorkingWithImages/Transformations

附件

  • transformation_examples.jpg (28.6 kB) - added by lakiboy on 12/10/06 12:14:58.
 
howto/workingwithimages.txt · 最后更改: 2010/05/30 00:21 (外部编辑)
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.2