Comments 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;
Было

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

Sign up to leave a comment.
Делаем черный фон прозрачным без Photoshop и наложения screen