有没有办法让我的用户定义帖子缩略图的裁剪区域?缩略图始终是现有的帖子附件,我不想为每个缩略图创建额外的附件。

帖子缩略图应为200x100像素,并来自帖子中使用的图像之一。因此,在我理想的世界中,当您单击“设置特色图像”链接时,将获得已包含图像的概述,而当您单击其中之一时,您可以自己定义裁剪区域(移动或调整其大小,但保持2x1的宽高比)。当您单击“确定”时,新帖子缩略图将与原始附件一起保存(例如,在_wp_attachment_metadata['sizes']['post-thumbnail']元数据字段中),而不是作为新附件保存。不允许使用已经用作帖子缩略图的图像来发表其他帖子,或者至少要发出警告。

我相信随附的图像编辑器将不符合我的需求,因为您可以选择编辑图像的所有版本或常规缩略图,而不仅限于帖子缩略图。我也很难知道我正在编辑哪个版本,所以我认为我的用户在使用它时会遇到更多麻烦。

是否有一个插件可以满足我的要求,或者我可以很容易满足我的需求?

更新:示例UI

我真的很喜欢Mac OS X通讯簿图像选择器的界面:选择图像并调整固定大小滑块通过比例缩略图裁剪器。您也可以拖动基本图像。您可以将此想法扩展为多种图像尺寸(例如,我的post-thumbnailpost-thumbnail-1/2仅为该尺寸的一半)。让用户通过复选框选择正在编辑的尺寸,并在屏幕上绘制适当的裁剪矩形。



评论

@Jan Fabry-我的第一个付费WordPress项目是用于裁剪图像的插件,而在WordPress中出现裁剪之前。它与您要求的有很大的不同,或者我将其作为答案。但是,如果您有动力,想要编写的内容应该不会太难...

@Mike:我曾经在您的网站上看到它,并且希望它可以在某个地方使用。即使它不能勾勒出我的(广泛)愿望清单中的所有项目,也可以提供一个良好的开端。

@Mike-我也非常有兴趣查看您可能创建或修改的与图像裁剪相关的任何代码。我一直在拼命寻找将jcrop添加到自定义metabox的功能,该功能允许添加和裁剪图像,同时仍然利用内置的wordpress媒体库。

嘿@Jan Fabry和@ NetConstructor.com-我刚刚回顾了代码,由于它是我的WP的第一个插件,我很尴尬而无法发布它,那真是太糟糕了。我很想开发一个更新的解决方案以在此处发布,但可能要花一些时间...

别害羞迈克,在作者看来,旧代码总是不好的。那只是进步:)。 @Jan-在您的UI示例中,我认为帖子缩略图的大小是预先定义的。你能说更多吗?

#1 楼

该代码仍然是一团糟,但是即使在IE 8上,它也似乎可以正常工作。我计划在存储库中发布它,但是与此同时,您可以使用当前版本。要访问它,请在添加或编辑图像时单击“编辑图像”,它取代了通常的图像编辑器(它们很难合并)。由于大多数管理区域都使用常规缩略图,而我的当前版本会编辑帖子缩略图,因此代码似乎无效,但是请通过显示帖子缩略图来尝试一下,您应该会看到它发生了变化。

此插件需要我的On-Demand Image Resizer(仍然是一团糟)来进行实际的大小调整。



评论


代码准备发布了吗?也许是github吗?我渴望将这样的功能集成到我的锅炉中

–轻度绒毛
2010-11-23 14:35

我对您的操作方式/方式也非常感兴趣!请共享代码。您的代码是否使用默认的wordpress媒体库工作,是否允许您在帖子编辑屏幕上创建一个简单的metabox,您可以在其中调用特定图像并仅按您创建的特定大小复制它,例如定义的“ new_thumb”通过类似add_image_size('new_thumb',200,100,true);的东西吗?理想的情况是具有类似于标题图像创建器的功能,该功能可以根据定义的每种尺寸的单个元框更改每种定义的图像尺寸。

– NetConstructor.com
2010-11-26 18:46

@JanFabry您是否已将此代码作为插件发布?我很乐意将其推荐给需要此功能的人!

–芯片Bennett
2012年1月5日15:17

@ jan-fabry这个功能怎么样?有没有成功?

–史蒂文
2012年4月23日在9:11

#2 楼

最好的选择是使用基于JavaScript的图像裁剪,然后将PHP与ImageMagick或Image GD结合使用。

它必须写到您的函数中或作为插件,因为我不知道任何现成的wordpress插件,这令人惊讶。

有一个带有基于php的保存选项的YUI图像裁剪http://developer.yahoo.com/yui/examples/imagecropper/conn_crop.html

这里是有关如何使用的另一本教程使用phphttp://www.webmotionuk.co.uk/php-jquery-image-upload-and-crop/

的第三个选择器与上述链接非常相​​似,使用相同的第一个选择器但代码不同。
http://www.leonkessler.com/blog/?p=132

这是另一个使用jquery的jcrop的http://www.talkincode.com/ jcrop-extension-implementation-in-php-932.html

谁在寻找新的插件,这肯定会很受欢迎:)

评论


wordpress核心中已经有图像裁剪代码(HTML,JS和PHP)。我认为一个好的插件会重新使用它。不必这么说。您是正确的,Jan绘制的示例UI需要这样的事实。

– hakre
2010年11月12日,0:30

@ hakre,Wyck链接到的最后一个是jcrop,它已在2.8中集成到wp内核中。我记得那时曾读过有关它的信息,但除了存储库中的一个插件被打破(所有帐户都被破坏)以外,我找不到任何实际使用的信息。

–马特
2010-11-14在16:37

@matt:如果它已集成到核心中(我现在不知道那里的裁剪UI的所有细节),我假定它已用于核心图像UI功能。该功能并非始终可用,只有在某些PHP或系统映像库可用时才可用。抱歉,我不确定,只是到目前为止我还没有进入核心实现。但是我知道有一个;)

– hakre
2010-11-14 22:12

#3 楼

假设您在谈论“特色图片”选项时已经添加了对缩略图的支持。

如果是这样,您可以选择一个选项为上传数组添加新的图片大小。因此,默认情况下,您有缩略图,中号和大号。在下面的代码中,这将根据您想要的大小将第四张图像添加到该分类中。这部分代码将添加到您的functions.php文件中。

add_image_size( 'new_thumb', 200, 100, true );


“ new-thumb” =新的自定义图像的名称
“ 200 “ =宽度
” 100“ =高度
” true“ =硬作物选项。这将强制将图像裁切为定义的宽度/高度。不,它只是按比例缩放。

现在,要在页面或帖子数组上显示新缩略图,您可以将以下内容插入HTML

<?php the_post_thumbnail('new_thumb'); ?>


评论


@cnix:感谢您的回答,但这不是我想要的。我想要一种让最终用户定义应裁剪区域的方法,而不是我作为站点的设计师。因此该区域可能因图像而异。

– Jan Fabry
2010-10-29 21:54

#4 楼

您可能想使用CSS来获得更大的灵活性,修复主题缩略图(如果需要)并避免文件混乱:

http://www.seifi.org/css/creating-thumbnails -using-the-css-clip-property.html

请记住,将加载整个图像,因此请勿为此使用3MB原始图像。

请按照1月的请求:
如果您要动态剪切,请考虑:


对于user = administrator,请通过PHP创建CSS;您可以直接链接到读取适当设置并相应调整裁剪参数的php。
对于user = visitor,请使用JavaScript更改图像的style属性中的裁剪参数。
作为一种侵入性较小的解决方案,请考虑创建一个简短代码(通过出色的插件Shortcode Exec PHP),例如[thumb w = ?? h = ??] url [/ thumb],您可以使用内联CSS将其转换为适当的HTML标记。


评论


确实,您可以通过CSS进行裁切以避免使用多个尺寸,但是如何让用户(帖子的作者)定义应显示的裁切区域?

– Jan Fabry
2010年11月9日20:31

请参阅上面的修改。

–拉斐尔
2010年11月9日20:57

感谢您的澄清。假设用户知道所需作物区域的像素位置?我实际上正在寻找一种更加图形化的方式(例如当前的图像编辑器,但目标是发布缩略图而不是常规缩略图)。

– Jan Fabry
2010年11月9日在21:01

我希望您打算让它成为一个插件,而不是一些hack。在大多数情况下,您可以提供一些足以满足需要的默认选项:拐角,中心,边缘居中等(均易于计算)。我将避免提供免费的输入内容,因为如果用户输入垃圾,他们可能会严重破坏网站的流量。我想提供一个图形剪辑定义器(有关实现请参见Zenphoto)很好,但是无论如何获得值,如何使用这些值的原理都保持不变。您只需要构建GUI。这我帮不了你。

–拉斐尔
2010年11月9日在22:04

#5 楼

我们有时会使用一个称为WP Post Thumbnail的旧插件。它不是完美的,并且WP的最新版本存在一些小错误(自2008年以来未进行过更新,因此不一定可靠)。 http://wordpress.org/extend/plugins/wp-post-thumbnail/

#6 楼

我相信您正在寻找:http://wordpress.org/support/topic/scissors-for-wordpress-29-also-works-on-30-hurray

我还没有尝试过这样,但它应该为您提供所需的功能。

原始插件页面在这里。 http://wordpress.org/extend/plugins/scissors/

我正在从事的项目也需要此功能。

评论


谢谢你的建议。我已经看过剪刀(并且知道有人将其升级到3.0),但是我认为它对于我想要的来说太灵活了:必须将裁切器裁切成预定的尺寸。剪刀可以做得更多,因此可能会使我的最终用户感到困惑。

– Jan Fabry
10 Nov 16 '20:46

#7 楼

我认为解决此问题的最终方法是修改
http://www.seoadsensethemes.com/wordpress-wp-post-thumbnail-plugin/

并对其进行自定义这样,当您要修改图像时,您的functions.php文件(使用add_image_size( 'new_thumb', 200, 100, true );)中定义的任何自定义图像大小都会自动被使用,然后获取替换(或扩展)“编辑”链接的代码。

使用这种方法,wordpress可以像往常一样继续创建其适用的图像大小,但是如果您要专门修改任何特定图像的裁剪区域,则可以这样做,从而可以替换为此自动生成的图像尺寸。嗯...虽然听起来很困惑,但再次阅读它恰恰是我所缺少的。

目前,我相信该插件会将这些自定义图片大小保存到帖子中的自定义字段中,而不是帖子中以获得适用的图像。

#8 楼

我决定使用原生的“ wp_get_attachment_image”裁剪缩略图...这里是一个带有裁剪的缩略图的图片库示例。

http://wpworks.wordpress.com/2010/12/ 27 / image-gallery-with-image-crop /

最好的问候