Преобразуване в JPG PNG в PHP (с прозрачен фон)

Напоследък съм изправен пред ситуация, в която трябваше да конвертирате JPG към PNG. В този случай е необходимо да се отстрани на заден план. Снимки да бъдат обработени, имам около 2 хиляди. Natural опция с Photoshop и кутия с мощност веднага изчезва. Направете това, всичко, което трябва в онлайн магазина.

Първото нещо, което идва на ум е да се съберат всички изображения в масива (функцията най-лесният начин scandir ()), след това преминава през масива и се прилага към всеки елемент на определена функция.

Тя остава за малките - да се напише функция JPG преминаване към PNG.

Ние вече демонтирани конвертирате PNG да JPG. Там нещата са много по-лесно. Сега нека да поговорим за връщането.

Погледнах в библиотеката PHP GD, а именно imagefill () функция, но това не е точно това, което ми трябва. Тази функция изпълва само точен цвят, а в JPG, можете да намерите милиони цветове, и все още е фактор, има много цветове, които човешкото око възприема същото.

Имате нужда от нещо, където можете да зададете праг на точност на цветовете и гамата ще бъде залят програма.

За да се реши този проблем трябваше да се изкачи кръг pendosovskih много форуми, блогове и портали.

В резултат на това, аз все още успява да събере трохите от същата функция за конвертиране, която ще JPG да PNG с прозрачността. Веднага се добавя малък клас за тази роля. Тя работи, разбира се, не е съвършен, но въпреки това, в моя случай, за онлайн магазин за това е достатъчно.

Когато създавате обект «transparaizer» Дизайнер на това е необходимо да се премине 3 параметри:

  1. Пътят до файла на сървъра,
  2. Цветът на фона (което следва да бъде заменен от прозрачен)
  3. праг на точност на преход от един цвят към друг.

Добре е да отбележим, че по-висок праг, точността, толкова повече ресурси, за да отговарят на вашите нужди, но ние получите по-добро качество на печат на изображения.

По-долу е примерен код за този пример.