Пакетна заміна кольору прозорістю


17

У мене дуже велика кількість зображень PNG (занадто багато, щоб практично робити їх одночасно) з яскраво-рожевим фоном і хотіла б замінити колір фону прозорістю. Якщо це неможливо або особливо важко, корисно буде замінити вказаний колір білим.

У мене є gimp, але не Photoshop, і мені не особливо комфортно з командним рядком, тому, якщо рішення вимагає, будь ласка, покажіть кожен крок. Було б чудово зробити це, будь-яка допомога буде вдячна.

Відповіді:


21

Я знаю, ви сказали, що вам не зручно з інструментами командного рядка, але ImageMagick може це зробити:

Замініть конкретний колір

convert balloon.gif -transparent blue balloon_trans.gif

введіть тут опис зображення введіть тут опис зображення введіть тут опис зображення

Де balloon.gifзнаходиться вихідне зображення, -transparentвказується, що потрібно прозорий bg, blueє кольором, який ви хочете замінити, і balloon_trans.gifє завершеним зображенням.

Це припущення, що ваш "яскраво-рожевий" не є частиною жодного із зображень. Щоб отримати трохи більш розумне видалення фону (заливка), ознайомтеся з цим підручником: Маскування простих фонів (заливка)

Це може стати трохи волохатим, і деякі параметри, які вони там вказують, ймовірно, не потрібні для того, що ви намагаєтесь зробити, так як @graphics man пропонує вам додати backgroundдо команди


Якщо ви можете сказати мені, яку ОС ви використовуєте, та зразкове зображення, я можу допомогти вам зі сценарієм для автоматизації цього для багатьох зображень


Конкретні для вашої ситуації:

Спочатку встановіть ImageMagick . Вам може знадобитися перезапустити після встановлення оновлення змінної PATH (я це зробив)

Після встановлення запустіть командний рядок (меню "Пуск", введіть cmd, натисніть Enter)

Потрібно змінити каталоги, куди зберігаються зображення. Для вашої ситуації введіть таку команду:

cd C:\Users\Eric\Pictures\pngs\logos

Тепер нам потрібно створити папку для збереження всіх зображень у:

mkdir batch

А тепер команда перетворити всі зображення:

FOR %G IN (*.png) DO convert "%G" -transparent #FF00FF "batch\%G"

Примітка. Для ImageMagick v7 використовуйте magickзамість convertцього

FOR %G IN (*.png) DO magick "%G" -transparent #FF00FF "batch\%G"

Якщо все пройшло гладко, щойно збережені зображення повинні бути у створеній вами пакетній папці.

введіть тут опис зображення введіть тут опис зображення введіть тут опис зображення


1
гарне рішення, якщо хтось цікавиться еквівалентним Linux-файлом: для файлу в * .png; перетворити "$ {file}" -transparent '# ffcc66' "batch / $ {file}"; виконано
Самер Шемна

Для Mac це, схоже, пов’язано: superuser.com/questions/773590/… Дякую!
Дан Розенстарк

Це не працює, як робить Gimp. Якщо у вас білий білий піксель з альфа 0,5 поверх чорного пікселя, і ви хочете видалити чорний колір, сірий піксель залишиться.
Юліан Онофрей

3

Якщо ви працюєте з gimp і не хочете переходити на Imagemagick, ви можете поглянути на пакетний процесор Девіда (DBP) . Це плагін для gimp для пакетної обробки. Зауважте, я ніколи його не використовував і не перевіряв, але це було те, що я бачив, як раніше. Якби у вас був Photoshop, я міг би показати вам, як використовувати пакет або дію.


Я маю це і використовував його для масового обрізання цих зображень, але, здається, немає жодної можливості замінити кольори. Можливо, я цього не пропускаю, або маю стару версію?
їли

Я не знаю. Я просто знайомий з плагіном, оскільки клієнт використовував його для масового редагування зображень і отримував помилку. Оскільки Джон опублікував Imagemagick - це потужний варіант, який може вирішити всі ваші проблеми. Там сайт дуже детальний. Подивіться imagemagick.org/script/index.php
DᴀʀᴛʜVᴀᴅᴇʀ

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.