Хабр доступен 24/7 благодаря поддержке друзей

Комментарии 5
convert src.jpg -fuzz 10% -transparent black temp.png
convert -composite -gravity center back.jpeg temp.png res.pngВы имеете в виду утилиту от imagemagick.org.
Да, указанным способом вы можете удалить черный цвет. Но фон удаляется до определенного порога, указываемого, например 10%. Все ,что выше порога не удаляется, в результате получаются четкие границы прозрачности и объекта. При наложении такого PNG в html верстке на фон будут артефакты. В предлагаемом алгоритме прозрачность уменьшается плавно, на всем диапазоне от 0 до 255.
Почувствуйте разницу

Спасибо, прочитал!
Код понравился. Девушки тоже...
Особо понравилась простота кода... Это вряд ли открытие, но как демонстрация возможности, то почему бы и нет...
Добавил метод инвертирования маски.
<button onclick="decrunching('invert')">Invert</button> case 'invert':
rgba = 255-pixels[i + 3];
newpx[i]=((pixels[i + 3]!=0) ? newpx[i] : 255);
newpx[i+1]=((pixels[i + 3]!=0) ? newpx[i+1] : 255);
newpx[i+2]=((pixels[i + 3]!=0) ? newpx[i+2] : 255);
break;
Было

Получим маску

Зарегистрируйтесь на Хабре, чтобы оставить комментарий





Делаем черный фон прозрачным без Photoshop и наложения screen