将图像调整为编辑器中使用的实际大小?


20

有没有一种方法可以将图像调整为将在帖子中显示的实际大小?我有一些用户导入大图像,然后在可视编辑器中调整其大小。这很容易,因为他们可以将图像拖动到所需的大小,而无需先打开图像编辑器,调整图像大小,保存图像并将其作为单独的附件上传。当然,这有时会导致图片的宽度在帖子中为100px,但实际上为1500px。

保存新帖子时是否有插件可以执行此操作?我想保持现有的全尺寸图像(用于连接,或以后调整大小),只是(在并保存它添加一个额外的大小_wp_attachment_metadata物体),所以这个帖子在正确尺寸的图像,并且提及全尺寸附件。

当然,所有现有职位也应处理一次。<img>标签可能只有一个width,只有一个height或没有一个:应该全部清除,因此它们都具有正确的widthheight并且具有该大小的图像。


您是否可以使用服务器端解决方案,该解决方案根据传递到现有图像URL的获取参数即时调整图像大小?Apache / Mod_Rewrite?
hakre 2010年

@hakre:您的意思是一个后保存的过滤器,该过滤器会过后并将每个图像重写为image.png?w=300&h=400image-300x400.png,然后我将根据请求通过Mod_Rewrite进行选择并调整大小(和缓存)?这比一次创建调整大小的图像(在该后保存操作中)并将其作为静态文件提供服务有优势吗?
Jan Fabry 2010年

@Jan Fabry是的,这就是我的想法。好处是,您仅应要求创建图像,因此,只要作者编辑帖子,就不会立即创建文件。除了不阻止编辑之外,它还与wp分离,因此您甚至可以创建一些服务器服务,CDN缓存盛会或其他任何东西。:) --- wp.com的操作类似,如果我看到正确的话。
hakre 2010年

结合缓存,这种方法确实很有用。我会假设有一个插件。您还可以运行Zenphoto的安装以及类似Zenphoto Gallery的插件(我自己的插件:lmazy.verrech.net/zenphoto-gallery
Raphael

@Raphael:的确,今天我研究了可能的插件,有些人采用了这种方法。如果您有什么要添加到我的候选列表中,请这样做,所有用户都可以对其进行编辑。
Jan Fabry

Answers:


11

我创建了两个插件,可以一起解决我的需求。他们目前处于Alpha早期阶段,欢迎所有评论。

基本的插件是一个On-Demand Resizer。该插件监视上传目录中不存在文件的请求,并根据需要创建所需大小的图像。例如,image-200x100.jpg将创建并返回image.jpg,但将尺寸调整为200 x 100像素。该映像将使用该名称保存在目录中,因此服务器直接处理其他请求。

第二个插件Resize img标签修改<img>标签,使其src属性包括width和/或height数据。这允许第一个插件提供正确的图像。他们在一起做我想做的事,我只需要创建一个运行一次的函数即可转换所有现有的帖子,但这应该很容易(我不想加入the_content只能运行一次的东西)。

当在WordPress中上载新图像时,第三个“奖励”插件虚拟中间图像可拦截中间图像的创建。由于如果需要,它们仍然是由第一个插件创建的,因此,除非实际使用它们,否则您可以指定多个图像大小而不会占用磁盘空间。这不需要两个先工作,但它是一个容易此外,它突出了一个事实,我仍然需要工作WordPress的图像编辑器周围,但我会做到这一点,当我创建我的缩略图的编辑,这也将使用第一个插件。


1
这些声音真的很棒!我迫不及待地有时间在实际情况中需要它们时进行尝试。
MikeSchinkel 2010年

好东西。您是否正在考虑将其添加到worpdress插件存储库?
hakre 2010年

@hakre:的确是。一旦我准备好让他们进行同行评审:-)
Jan Fabry 2010年

4

我已经在插件目录中搜索"resize""crop"(后者是另一个问题),并在公开的Google电子表格中记录了我的发现。插件搜索的结果编号非常混乱("resize"搜索的最后一页显示“显示273-插件中的145-150”),所以我可能错过了一些。半相关的注释:每个人似乎都认为世界需要另一个幻灯片插件。似乎没有人意识到content_save_pre比做一个更好的过滤器进行重解析the_content

我还没有测试这些插件中的任何一个,但是下面列出的插件似乎可以满足我的要求。我在括号中添加了“最多兼容”版本号。

个人想法:前四个将URL重写为/wp-content/plugins/my-plugin/image.php?src=[original src]&w=100&h=50具有各种缓存形式的动态页面(类似)。我更喜欢根据需要创建的真实图像,类似于ImageScaler采取的方法。但是,我将其拆分(并在注释中包括hakre的建议),然后首先从/wp-content/uploads/2010/11/image.jpgto 重写所有URL /wp-content/uploads/2010/11/image-100x50.jpg,然后让脚本创建丢失的图像。对此图像的第一个请求将创建该图像,所有后续请求都将使用此创建的图像。这也使我可以将功能拆分到不同的插件中。我将在单独的答案中发布此解决方案。

这些插件将图片限制为一定的最大大小(这与指定有$content_width什么不同?):

由于其他原因,以下插件很有趣:

这是社区Wiki的帖子,因此如果您找到新的插件,可以对其进行更新。


0

如何利用timthumb和传递变量自动更改图像大小/尺寸和缩放级别?这样,仍然可以保持原始图像尺寸。如果您需要一些示例,请告诉我。


0

WordPress提供了三种可以配置的默认大小(小,中,大)。如果使用这些,Wordpress将创建调整大小的副本。最好使用这些样式并设置数字,使其适合当前样式。这会导致图像在整个页面上的大小没有变化,并且当主题更改时允许全局调整。


我知道最好坚持使用预定义的图像大小,但是我的客户则不:-)如果他们可以在编辑器中调整图像大小,则系统遵循该选择是合乎逻辑的。
Jan Fabry 2010年

好吧,您可以消除这种可能性,并迫使它们干净地工作;)
拉斐尔(Raphael

这也是一个有趣的问题:“如何在TinyMCE中禁用调整大小功能?” 如果您知道答案,请创建一个新问题并自己回答,这对其他人可能会很有用。
Jan Fabry 2010年

0

最近发布的Image Pro插件似乎可以做到这一点。还没有进行自我测试,演示看起来非常令人印象深刻,请注意浏览器兼容性差(目前仅适用于Firefox)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.