• Причём, на самом деле он их загружает, в папку upload они попадают, но вот дальше php падает. Если грузить браузером, то «500 server error». Казалось бы, проблема в версии php или htaccess или ещё где-то я накосячил, но 24 битные png загружаются без проблем. Есть подозрение, что pngout как-то чрезмерно агрессивно оптимизирует файл, что php ниасиливает, но что с этим делать? Если загружать не из статьи, а из медиафайлов, а потом вернуться в статью, то файлы видны в каталоге, но в виде иконок, без превьюшек. Но их можно добавить в статью и всё отображается корректно, даже после публикации.
    С этим можно как-то бороться?

Просмотр 15 ответов — с 1 по 15 (всего 15)
  • Модератор Yui

    (@fierevere)

    永子

    wordpress’у все равно сколько бит в вашем .png

    если падает php , то это проблема php и его расширений
    wordpress использует в порядке приоритета —
    1. imagemagick ( php imagick )
    2. GD

    что делать?

    попробовать сменить расширение обработки
    использовать свежую версию PHP, отрапортавать ошибку в багтрекер PHP если глюки есть в поддерживаемой версии (5.6)

    использовать GIF для таких картинок

    Про падение PHP скорее моё предположение. лог ошибок на сервере девственно чист. Пробовал PHP 5.3 — 5.6 включительно. При загрузке бразузером тоже падает, но файл на сервер загружается, так что проблема не в правах доступа. wordpress свежеустановленный, без плагинов и расширений. Глюки именно в библиотеке медиафайлов. Вместо «упавших» файлов иконки файлов рисуются, но в статью в виде картинок они вставляются. Как будто ошибка в создании превьюшек (создание миниатюр я уже запретил, как и ограничения на размеры картинков снял, кажется).

    8 битные, а какое сжатие там используется?

    Прогоняю через
    optipng.exe -o7 -f5 -i0 filepath
    и
    pngout с параметрами по умолчанию

    24 битные обработаны ими же, но проблемы нет. Размеры в несколько сотен пикселей, с памятью проблем быть не должно. 24 битные даже большего разрешения, но все оК.

    дайте такую картинку, проверим на своих серверах.

    Модератор Yui

    (@fierevere)

    永子

    дайте картинку, у меня не получилось воспроизвести падение

    $ optipng -o7 -f5 -i0 test.png
    ** Processing: test.png
    600x600 pixels, 3x8 bits/pixel, RGB
    Input IDAT size = 629654 bytes
    Input file size = 630663 bytes
    
    Trying:
      zc = 9  zm = 9  zs = 0  f = 1         IDAT size = 561976
    
    Selecting parameters:
      zc = 9  zm = 9  zs = 0  f = 1         IDAT size = 561976
    
    Output IDAT size = 561976 bytes (67678 bytes decrease)
    Output file size = 562073 bytes (68590 bytes = 10.88% decrease)
    
    $ pngout test.png
     In:  562073 bytes               test.png /c2 /f1
    Out:  528217 bytes               test.png /c2 /f5
    Chg:  -33856 bytes ( 93% of original)
    $ file test.png
    test.png: PNG image data, 600 x 600, 8-bit/color RGB, non-interlaced

    PHP Version 5.5.28-yui
    libPNG Version 1.6.18
    imagick module version 3.3.0RC2
    Imagick using ImageMagick library version ImageMagick 6.9.1-5 Q16 i586 2015-06-20 http://www.imagemagick.org

    если пробовали разные версии PHP, то возможно ошибка в libpng
    у вас версия какая?

    http://blog.maagames.ru/wp-content/uploads/2015/08/test.png

    В данный момент:
    PHP Version 5.4.29 (пробовал версии от 5,3 до 5,6 включительно)
    MySQL Version 5.5.35-33.0
    Apache Version 2.2.27
    WordPress 4.2.4

    Ничего дополнительно не ставил, где есть libpng не знаю.

    Модератор Yui

    (@fierevere)

    永子

    никаких проблем у меня на wp 4.2.4 (остальная значимая конфигурация выше) с вашей картинкой не возникло

    где есть libpng не знаю

    <?php
    phpinfo()
    ?>

    подскажет

    интересно что: наличие imagick, наличие GD, версии библиотек libPNG и других написаны в секции GD

    тоже никаких проблем с картинкой нет.

    PNG Support enabled
    libPNG Version 1.2.49
    GD Support enabled
    GD Version bundled (2.1.0 compatible)

    Т.е. через «добавить медиафайл» она у вас добавляется и превьюшка тоже есть? Видимо, у меня что-то сильно не так… jpg нормально добавился, как и 24 битные png.

    Модератор Yui

    (@fierevere)

    永子

    imagick нет?

    на новых версиях ПО всё хорошо,
    если у вас нет возможности обновиться — попробуйте использовать GIF например для таких картинок или не использовать pngout

    PS: опять же проблема не в WP, ему абсолютно все равно на внутренности обработки картинок, они происходят на уровне

    Imagick или GD -> libPNG
    на этом же уровне и надо искать виновника, т.е. баг

    Я не уверен, что могу обновить эти библиотеки. php переключается через cPanel, libpng при этом остаётся один и тот же.
    Спасибо, попробую с этим что-нибудь сделать.

    Модератор Yui

    (@fierevere)

    永子

    libpng при этом остаётся один и тот же.

    именно так, можно только обновить ОС
    так что пытайтесь идти обходным путем, это наверное проще

    Модератор Юрій

    (@yube)

    GD Version 2.0
    libPNG Version 1.2.46
    Без проблем.

    Модератор Yui

    (@fierevere)

    永子

    о, еще вам вариант, для обхода

    оптимизируйте картинки уже после загрузки
    в папке wp-content/uploads/201?/??/
    optipng стандартная программа, доступна в любом дистрибутиве
    pngout можно скачать с сайта автора

Просмотр 15 ответов — с 1 по 15 (всего 15)
  • Тема «Почему wordpress не загружает 8 битные png?» закрыта для новых ответов.