Перейти к содержанию
maxus389

Конвертация png в jpg для yandex-маркета

Рекомендуемые сообщения

Коллеги,

есть модуль экспорта в yml, уже не помню какой и где брал. в общем работает норм.

Одна проблема - яндексу не нравятся фотки в png, он их делает с черным некрасивым фоном.

Знаю есть такая функция:

imagejpeg(imagecreatefrompng('картинка.png'),'картинка.jpeg',100);

Вот часть кода в оригинальном yandex-экспорте:

if ($product['image']) {
          $data['picture'] = $this->model_tool_image->resize($product['image'], 100, 100);
			}

Собственно как правильно добавить конвертацию к этому коду при условии что он является изначально png-файлом?

 

Буду примного благодарен за помощь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конкретно Яндекс с вашими фотками вобще ничего не делает, только выводит у себя по ссылкам из файла yml.

Фотки создаются непосредственно во время работы модуля экспорта, за обработку изображений отвечает библиотека system/library/image.php

 

Смотрите, что у вас в ней - должно быть так:

        if (isset($this->info['mime']) && $this->info['mime'] == 'image/png') {        
            imagealphablending($this->image, false);
            imagesavealpha($this->image, true);
            $background = imagecolorallocatealpha($this->image, 255, 255, 255, 127);
            imagecolortransparent($this->image, $background);
        } else {
            $background = imagecolorallocate($this->image, 255, 255, 255);
        }

где 255 три раза подряд указывают цвет фона при создании/обрезке изображения - белый

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

где 255 три раза подряд указывают цвет фона при создании/обрезке изображения - белый

Это понятно, но это не работает на изображения png где нет фона. Да и не должно работать. Весь смысл красивых png без фона тогда теряется.

 

А вот функция resize, которая используется в модуле экспорта ($this->model_tool_image->resize) как раз указывает как и где сохранить файл в кеше изображений.

Вопрос не в том, что бы сделать фон белым для всех изображений, вопрос в том, как отдать только яндексу ссылки на сконвертированные в кеш изображения (png->jpg) с белым фоном.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, ну подскажите кто-нибудь. А то маркет к прозрачным png добавляет черный фон, все картинки выглядят уродски.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрите здесь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрите здесь

Вот вот, это все понятно, только моих знаний не хватает что бы реализовать это в OC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.