问题描述
有没有办法让我的用户定义帖子缩略图的裁剪区域?缩略图始终是现有的附件,我宁可不为每个缩略图创建额外的附件。
帖子的缩略图应该是 200×100 像素,并且来自该帖子中使用的一个图像。所以在我的理想世界中,当您点击 「设置精选图像」 链接时,您可以概览已包含的图像,当您单击其中一个时,您可以自己定义裁剪区域 (移动或调整大小,但保持 2×1 宽高比) 。当您单击”OK” 时,新的帖子缩略图将保存在原始附件中 (例如在_wp_attachment_metadata['sizes']['post-thumbnail']
元数据字段中),而不是新的附件。使用已经用作另一个帖子的帖子缩略图的图像不应该被允许,或至少给出警告。
我相信包含的图像编辑器不符合我的需要,因为您可以选择编辑图像的所有版本或常规缩略图,而不仅仅是发布缩略图。我也发现有一些令人困惑的知道我正在编辑哪些版本,所以我认为我的用户会有更多的麻烦。
有没有一个插件可以做我想要的,或者我可以很容易地扩展到我的需要?
更新:示例 UI
我非常喜欢 Mac OS X 通讯录图像选择器的界面:您选择一个图像,并通过滑块调整固定比例缩略图裁剪器的大小。您也可以拖动基本图像。您可以将这个想法扩展到多个图像大小 (例如,我有一个 post-thumbnail
和 post-thumbnail-1/2
) 。让用户用复选框选择他正在编辑的尺寸,并在屏幕上绘制适当的裁剪矩形。
最佳解决方案
代码仍然是一团糟,但它似乎工作,即使在 IE 8. 我打算发布它在存储库,但在此期间,你可以玩 my current version 。要访问它,您在添加或编辑图像时单击”Edit Image”,它会替换通常的图像编辑器 (它们很难合并) 。由于大多数管理区域使用常规缩略图,而我当前的版本编辑了邮件缩略图,似乎代码没有任何效果,但是通过显示一个帖子缩略图来尝试,你应该看到它的更改。
这个插件需要我的 On-Demand Image Resizer,这也是一个混乱,做实际的调整大小。
次佳解决方案
最好的办法是使用基于 javascript 的图像裁剪,然后将 php 与 ImageMagick 或 Image GD 结合使用。
它必须写入您的功能或作为 plug-in,因为我不知道任何现成的 wordpress plug-ins 的手,这是令人惊讶的。
有一个 YUI 图像裁剪与基于 PHP 的保存选项 http://developer.yahoo.com/yui/examples/imagecropper/conn_crop.html
这是一个不同的教程,关于如何使用 php http://www.webmotionuk.co.uk/php-jquery-image-upload-and-crop/的 jquery 裁剪器
第三个选项与上述链接非常相似,使用相同的 jquery 裁剪器但不同的代码。 http://www.leonkessler.com/blog/?p=132
这是另一个使用 jquery 的 jcrop 而不是 http://www.talkincode.com/jcrop-extension-implementation-in-php-932.html
谁是一个新的 plug-in,这肯定会受欢迎:)
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。