프로그래밍

파이썬 pillow-avif-plugin 라이브러리 gif->avif 변환 관련 문제

from PIL import Image, ImageSequence
import pillow_avif

image.save(image_path_out + '.avif', 'AVIF', save_all=True, speed=0, subsampling="4:2:0", quality=75)

이걸로 하면 알파 채널 있는 GIF를 AVIF로 변환할 때 알파 채널이 유지되지 않음
 

그래서

if "transparency" in image.info:
    frames = []
        for frame in ImageSequence.Iterator(image):
            frame = frame.convert('RGBA')
            frames.append(frame)
    frames[0].save(image_path_out + '.avif', save_all=True, append_images=frames[1:], speed=0, subsampling="4:2:0", quality=75)

이렇게 해보니 알파채널이 유지됐는데 문제는 매우 빠르게 재생이 되는데
 

frames[0].save(image_path_out + '.avif', save_all=True, append_images=frames[1:], duration=image.info['duration'], speed=0, subsampling="4:2:0", quality=75)

이런 식으로 실행해보니 정상적으로 재생이 되는데
이렇게까지 해야되나? 의문심이 듬

왜냐하면 https://github.com/fdintino/pillow-avif-plugin/issues/14
이 링크에서 그냥 변환할 시 이미지 시퀀스 모드를 지원하지 않는 뷰어 또는 플레이어때문에 정상적인 재생이 되지않는다고 했고
그냥 변환한 후, html로 크롬에서 재생하면 정상적으로 재생된다는데
정작 크롬에서 매우 느리게 재생이 되고 그 외의 뷰어에서 재생하면 매우 빠르게 재생이 되는데
duration=image.info['duration']를 넣으면 크롬, 뷰어 둘 다 매우 부드럽게 정상적으로 재생이 됨


내가 잘못한건지 아닌지 잘 모르겠음
아무 옵션없이 변환시켜서 멀쩡한 결과물이 나오면 좋겠는데

정상적인 변환이 안되다보니 다른 라이브러리로 갈아타야하나들고

이미 다 고쳤다지만 뭔가 찝찝함이 크네

3개의 댓글

메모장으로 써야겠다.

 

JPG 그레이 스케일 모드인 경우 AVIF로 변환할 때 크로마 서브 샘플링 YUV400로 바꾸는 게 좋음

420로 변환하더라도 색상 정보가 없어 큰 영향을 주는 것은 아니지만 용량을 미세하게 줄일 수 있음

0

AVIF는 손실압축 알고리즘만을 사용하는 포맷으로 무손실은 엄연히 따지자면 무손실이 아니며

무손실 압축을 하고싶다면 WEBP의 무손실 압축 알고리즘을 사용하는게 좋다.

0

PNG의 팔레트(PAL7 또는 PAL8)가 알파채널을 보유하면 AVIF로 제대로 변환이 되지 않고 투명 배경이 초록색으로 표시되는 버그가 있음

if 'PNG' == image.format:

if image.mode == 'P':

if "transparency" in image.info:

image = image.convert('RGBA')

로 해결 볼 것

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
5689 [프로그래밍] 반도체 장비 업계인 있음? 4 캡틴띠모 0 16 시간 전 152
5688 [프로그래밍] 안드로이드 책 추천좀 5 집에가게해줘 0 1 일 전 114
5687 [프로그래밍] 폰 스크리닝 해 본 사람 있어? 3 무지개빛푸딩 0 1 일 전 346
5686 [프로그래밍] jsp 트리메뉴 만들고있는데 구상한게가능한지 의견좀물어볼께 11 평택국 0 2 일 전 127
5685 [프로그래밍] JPA 도와줘어억 ㅠ 10 모그리또 0 2 일 전 209
5684 [프로그래밍] 의사는 뽑는 인원 제한하는데 부캠은 왜 제한 안 할까 5 조강현 0 4 일 전 344
5683 [프로그래밍] 그 혹시 게임쪽 종사자 있음? 17 god79ii 0 8 일 전 612
5682 [프로그래밍] 코린이 ㅅㅂ 뭐가 문젠지 모르겠어요 9 집에가게해줘 0 8 일 전 432
5681 [프로그래밍] Dear Imgui 라고 아시나요? 2 년째모쏠 0 9 일 전 236
5680 [프로그래밍] 현업개발자분들 주말엔 편하게 쉴수있나요? 10 키로 0 9 일 전 835
5679 [프로그래밍] 무엇이든 물어보세요. 28 변현제 0 11 일 전 397
5678 [프로그래밍] 개발자보단 엔지니어가 취업이 잘됨 5 iillillill 2 12 일 전 709
5677 [프로그래밍] 프론트엔드 개발자 연봉 1억 넘는 사람 있어? 13 잠적자 0 12 일 전 616
5676 [프로그래밍] Exiftool 이거 일본어 못 읽는데 13 부터시작하는이세... 0 14 일 전 229
5675 [프로그래밍] 반응형 웹페이지가 내가상상한거랑 좀 다르네 4 평택국 0 15 일 전 441
5674 [프로그래밍] 고졸 FE개발자 연봉, 상황에 조언좀.. 19 쾅꿍꿍 0 15 일 전 593
5673 [프로그래밍] 물경력들 보면 책임을 이해못하는것같음 5 mils 1 16 일 전 405
5672 [프로그래밍] GPT가 코딩 다해주네 3 겜신병자 0 17 일 전 734
5671 [프로그래밍] 크로스플랫폼의 욕심은 끝이없다 4 ye 0 19 일 전 393
5670 [프로그래밍] 월루중에 백준 풀어보고 있는데, 6 오뜨 0 20 일 전 664