深入探讨WordPress图像处理的增强功能

WordPress平台中,开发者拥有更多的灵活性来增强平台的功能。这为扩展WordPress生成图像尺寸的方式提供了非常强大的方法。

在3.5版本之前,WordPress的代码库中有很多相同的代码。如果开发者不能准确记住图像最后一次被操作的位置,那么图像可能会以不同的方式被保存。这些在WordPress 3.5中得到了解决,开发者将GD代码从核心抽象出来,转而使用一些新的类。

WP_Image_Editor成为了主要的类,包含共享的方法,而WP_Image_Editor_GD现在包含了WordPress之前所有的代码。

以下是它现在的样子:

$image = wp_get_image_editor('cool_image.jpg'); if (!is_wp_error($image)) { $image->rotate(90); $image->resize(300, 300, true); $image->save('new_image.jpg'); }

由于GD被抽象化,因此可以轻松地集成Imagick支持。这导致图像质量更好,对于所有在其Web主机上有Imagick可用的用户,默认情况下都会添加对Imagick的支持。当处理具有扩展颜色配置文件的图像时,这一点尤其重要。如果不支持Imagick的函数不可用,WordPress将默认回退到GD。代码的编写方式允许开发者集成他们自己的图像处理引擎或扩展现有的引擎。

另一个巨大的优势是,新的类可以直接在定制的插件或主题中使用,只需添加一个简单的函数调用:

wp_get_image_editor('cool_image.jpg');

甚至可以检查现有的编辑器是否支持MIME类型或方法,通过调用:

wp_image_editor_supports($args);

关于这些功能的更多信息可以在WordPress.org上找到。在过去的两年里,开发者一直在构建这些功能。

对于典型的WordPress用户来说,他们可能不会意识到这些代码,因此这对他们来说并没有特别的帮助。到目前为止,只有少数插件被创建来利用图像处理的强大功能。这些插件完全依赖于WordPress代码,而不是第三方库。在过去的两年里,构建了多个插件来展示WP_Image_Editor的强大功能。其中一些插件功能包括一个gmagick图像编辑器和一个改进的GD编辑器。然而,它们还没有被开发者广泛使用。

参与的一个特定项目是WP_Image。这个类代表一个WordPress媒体项目。如果这个项目是一个图像,那么可以创建新的图像尺寸,覆盖现有的尺寸,调用WP_Image_Editor并根据规格进行修改。以下示例创建了一个新的图像尺寸,并将其存储类似于WordPress的add_image_size()函数。开发者会发现使用这种方法更容易,但仍有改进的空间。

$image = new WP_Image(313); $image->add_image_size('slider', 900, 200, true);

这段代码有助于减少上传文件夹中存储的图像数量。如果滑块只有六张图像,那么就没有必要生成数千张永远不会使用的图像。

为了为开发者提供更多的图像处理能力,需要回顾函数add_image_size()。这个伟大的函数允许开发者确定图像的名称、宽度、高度以及任何要裁剪的区域。这个函数的限制只有在尝试完成更高级的操作时才会变得明显。

目前正在将所有的代码合并到一个WordPress插件中。这个插件被恰当地命名为Improved Image Editor,可以在WordPress.org和GitHub上找到。它目前专注于API方面,这使得它对开发者特别有帮助。通过使用这个插件增强WordPress安装,用户已经可以添加更多的图像编辑功能:

Improved_Image_Editor::register_image_size_info('medium', array('quality' => 20)); Improved_Image_Editor::register_image_size_info('medium', array('zoom' => 2)); Improved_Image_Editor::register_image_size_info('medium', array('filters' => array('grayscale')));

尽管它已经有一些很棒的功能,但总是认为这个插件是一个正在进行的工作,因为新的能力不断地被添加。过滤器的范围很快就会扩大,提供在WordPress中更高级的操作。通过覆盖WP_Image_Editor的multi_resize()方法来创建这个功能。该方法本质上仍然与其原始版本相同,但现在可以调用两种方法。

第一次调用会改变尺寸数组。这目前只有在使用缩放时添加过滤器才有必要。为了实现这一点,它覆盖了image_resize_dimensions()函数。

第二种方法允许在图像对象上调用其他方法。它检查图像信息,并可以调用set_quality()方法或过滤器方法。为了使事情更简单,过滤器方法需要以filter_为前缀。

要手动安装插件,请参阅以下说明:

  1. 从GitHub或WordPress.org下载插件。
  2. 转到WordPress仪表板中的插件,然后点击“添加新插件”。
  3. 点击“上传”。
  4. 从硬盘浏览ZIP文件。
  5. 点击“现在安装”。
  6. 点击“激活插件”以完成过程。

(关于安装插件的更多信息可以在1&1 Blog上找到)

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485