Jump to content
Sign in to follow this  
maxus389

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

Recommended Posts

Коллеги,

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

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

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

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

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.