maxus389

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

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

maxus389    2

Коллеги,

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

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

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

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

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

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

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

 

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

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


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

Конкретно Яндекс с вашими фотками вобще ничего не делает, только выводит у себя по ссылкам из файла 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 три раза подряд указывают цвет фона при создании/обрезке изображения - белый

 

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


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

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

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

 

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

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

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


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

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

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


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

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

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


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

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

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

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


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

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

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

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

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

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

Войти

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

Войти


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

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