Mam folder plików png z przezroczystym tłem. Chciałbym przekonwertować je z wiersza poleceń i zachować przezroczyste tło obrazów.
Byłbym wdzięczny za wszelką pomoc.
Ponieważ pliki JPG nie obsługują przezroczystości, w jaki sposób mogę określić wartość szesnastkową wyjściowego koloru tła JPG? Teraz domyślnie jest to #ffffff
? Próbowałem tego skryptu, ale daje wyjściowe jpgs białe tło:
mogrify -quality 100 -format jpg *.png
Aktualizacja
Te pliki png utworzyłem w inkscape. Powinienem wspomnieć, że moim celem w konwersji tych pngs do jpgs jest pozbycie się postrzępionych krawędzi na obiektach okrągłych lub kątowych. Pliki PNG mają obecnie postrzępione krawędzie i czytam, że konwersja ich do plików JPG może rozwiązać ten problem. Jednak konwersja metodą opisaną w odpowiedzi Christiana Skjødta daje obrazom jeszcze gorsze postrzępione krawędzie. Czy istnieje sposób, w jaki mogę przekonwertować pliki PNG na JPG, a także zastosować wygładzanie krawędzi lub inną technikę, aby pozbyć się postrzępionych krawędzi? Dzięki za pomoc.
Odpowiedzi:
Aby wygładzić krawędzie, możesz utworzyć pliki PNG 10 razy większe niż docelowy rozmiar, a następnie zmienić rozmiar z wygładzaniem do JPG. Zrobiłem to za pomocą Pythona i Biblioteki obrazowania Python z dobrym skutkiem, ale nie jestem pewien, jak to zrobić za pomocą innych narzędzi.
źródło
Format JPEG nie obsługuje przezroczystości - dlatego utrzymanie przezroczystego tła nie jest możliwe, jeśli chcesz (lub musisz) użyć formatu JPEG. Zobacz Wikipedię, aby zapoznać się z możliwościami różnych formatów obrazów.
Należy pamiętać, że JPEG 2000 rzeczywiście obsługuje przezroczystość, ale jest znacznie mniej powszechny niż format JPEG. To, czy jest to realna alternatywa, zależy od przypadku użycia.
źródło
Na twoje drugie pytanie:
Aby określić kolor tła podczas konwersji obrazów, możesz użyć
-fill
opcji:Korzystanie
-background
zapewnia podobne wyniki. Nie zapomnij-opaque none
.źródło
Przykro mi, nie ma mowy,
jpeg
format nie obsługuje,alpha channel
więc nie możesz mieć przezroczystości.źródło
w zależności od tego, co próbujesz zrobić z obrazem, może być możliwe ustawienie kanału alfa na osobny obraz w skali szarości lub na maskę bitów, a program, który używa obrazu zastosuje obraz pomocniczy jako wartości półprzezroczyste / przezroczyste . Chociaż ostatecznie lepiej jest zmodyfikować program, aby obsługiwał alpha png.
źródło