为什么我无法编辑WordPress媒体库中的某些图像?

时间:2011-03-10 作者:gillespieza

我在WordPress安装中注意到一些奇怪的行为。

对于一些照片,当我单击“编辑图像”时,完整图像不会显示给我,只是缩略图中可见的区域。然而,如果你点击“查看图像”,你可以看到完整的图像实际上就在那里。

Clearly needs some fixing

显然,这张图片的缩略图需要一些手动干预。

Edit Image shows same weird crop

单击编辑图像,只会发现整个图像没有呈现给我进行裁剪/编辑。上传时图像是否被裁剪过?

The whole image is there

视图附件显示,不,整个图像实际上都在那里-它只是在图像编辑器中对我不可用。

发生什么事了?

这只是某些照片的问题,我看不出它们之间有什么区别——它们都是JPG,我看不到奇怪的EXIF数据。。。但有些照片我可以裁剪,有些则不行。。。

4 个回复
SO网友:Michal Mau

当您使用Apply changes to: All image sizes 在裁剪图像时,我相信上传过程中也会发生同样的事情$crop 参数设置为true 对于所有注册的图像大小(类似于add_image_size 功能正常)如上所述-停用与图像相关的插件,看看会发生什么。

无论如何,最奇怪的是Restore Original Image 屏幕截图中的按钮。此按钮正是您在编辑器中使用原始大小所需的。

See the update below...

我只能在裁剪图像之后,但在保存之前复制它。这个Restore Original Image 保存后,当我再次回来编辑它时,按钮就会出现在那里。

查看我的屏幕截图:After saving it and coming back

这显然不是最终的答案,但它并不真正符合评论格式,因此它最终出现在这里

UPDATE:
来自looking at the source of image-edit.php 似乎在决定是否显示“恢复…”时起着至关重要的作用链接的值为_wp_attachment_backup_sizes 给定附件的post元字段。

我建议为有问题的附件检查该值。您可以使用以下内容:

<pre>
<?php print_r( get_post_meta( $your_attachment_id_here, \'_wp_attachment_backup_sizes\', true ) ); ?>
</pre>
(或使用WordPress Console 插件)

也许你会在那里发现一些奇怪的东西。还可以尝试在损坏的附件和正确显示的附件之间比较这些值。。。我知道我不会给你你想听的答案,但我相信这可能是调查的正确方向。干杯

SO网友:kristi

同样的事情也发生在我身上。我发现this page describing the same problem. 看来这可能是主题造成的。虽然改变主题not 为我解决这个问题(我也禁用了所有插件)。

我认为这只会发生在我的图像上,这些图像比它们的宽度高(“纵向”方向)。如果图像的宽度大于其高度,则会调整其大小以正确匹配。Wordpress的图像大小调整算法一定有问题。吼叫声

恼人的解决方法:编辑图像并更改图像大小,在侧面添加“填充”,使宽度大于高度(如果您在Photoshop中,请更改画布大小,alt-ctrl-c)。然后将图像重新上传到wordpress。

运行Wordpress 3.2.1/PHP 5.2.17/twentyeleven主题/无插件

尝试运行自动“重新安装Wordpress”(单击“更新”选项卡上的按钮),但没有改变任何内容。

可能与图像大小有关(使用jpeg图像测试):

500px x 1000px图像正常工作400px x 600px图像正常工作400 x 600px图像正常工作399 x 500px图像正常工作400 x 800px图像正常工作400 x 380px图像正常工作只有当图像的宽度正好为400px时,图像才会失效

我提交了一份bug report 为了这个。希望Wordpress开发人员能够看到这一点。

SO网友:Tom Roggero

我创建了这个简单的函数来获取它。

function get_attachment_full_original($id){
    $img = pathinfo( get_attached_file($id) );
    $meta = get_post_meta($id, \'_wp_attachment_backup_sizes\', true);
    $orig = $meta[\'full-orig\'];
    return str_replace(ABSPATH, get_bloginfo(\'url\') . "/", path_join($img[\'dirname\'], $orig[\'file\']));
}

SO网友:Zade

在主题文件中查找:

add_image_size( \'thumb_name\', some_number, 400, true );
在哪里thumb_namesome_number 可能是任何东西。只需删除, true:

add_image_size( \'thumb_name\', some_number, 400 );
或者,如果需要硬裁剪模式,请更改400 至任何其他号码(399401 很好)

add_image_size( \'thumb_name\', some_number, 401, true );
我花了很多时间研究这个问题,它肯定是一个bug(甚至在WordPress 3.4.1中)。正如克里斯蒂所提到的,它发生在400像素宽的图像上。如果主题添加了高度为400像素且启用了硬裁剪模式的图像大小,也会发生这种情况。我已经更新了错误报告,我希望它很快得到修复!

结束

相关推荐

Resizing all images

我刚刚更改了博客的主题,由于页面宽度很小,它打破了布局。我之前的大多数图片(附在帖子中)的宽度都在600px左右,现在我需要按450px的比例调整它们的大小。如何一次性调整它们的大小?有这个插件吗?P、 美国:编写CSS规则是一个很好的选择,我已经做到了。但我认为调整图像大小也会减少每个页面的下载开销!