프로그래밍

파이썬 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
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180598 [컴퓨터] B650보드 추천좀 해주십시오 2 커뮤니티 0 30 분 전 14
180597 [모바일] 아니 s21이 169g이고 s24u가 233g인데 말이되나 9 마법부오러사무국장 0 7 시간 전 229
180596 [잡담] 드디어 cpu 배송시작한다 9 차원에서사는인간 0 11 시간 전 252
180595 [컴퓨터] 다빈치 리졸브 쓰는분있나여 4 afterschool 0 13 시간 전 148
180594 [모바일] 아이패드 저장공간 질문 6 가나가다라 0 13 시간 전 144
180593 [컴퓨터] 150~200 4K 게이밍 견적 부탁 드려봅니다 11 라면死리 0 14 시간 전 160
180592 [잡담] sn850x 1tb 방열판 없어도 괜찮죠?? 10 김빵순 0 15 시간 전 111
180591 [컴퓨터] Am5 메인보드 asrock b650m pg lightning vs gigabite b650m-k 8 죽업 0 17 시간 전 96
180590 [모바일] s21 3년째쓰다가 s24 울트라로바꾸고 느낀점 5 마법부오러사무국장 0 22 시간 전 570
180589 [견적] 중고 노트북 한번바조요 6 쯔네이 0 1 일 전 153
180588 [컴퓨터] 간헐적 모니터 화면 깜빡거림은 왜생기는걸까요? 22 파라다이스 0 1 일 전 176
180587 [모바일] 태블릿사서 사용용도 11 오브 0 1 일 전 326
180586 [컴퓨터] 배그 멈춤현상 도와주세요(내용수정하였습니다,) 12 크크르삥뽕 0 1 일 전 135
180585 [컴퓨터] 드디어 컴퓨터 다 샀다ㅜㅜㅜ 24 뽀삐뽀삐 0 1 일 전 352
180584 [견적] 9700k 쓰고 있는데 컴퓨터 업글하려면 라이젠 뭐 사는게 좋음? 11 쪄까튼쎼쌍 0 1 일 전 212
180583 [컴퓨터] jpg 열화 막는법? 7 정병장기입원 0 1 일 전 279
180582 [모바일] 윈도우pc와 아이폰 사진연동 안되나? 5 cw 7 0 1 일 전 131
180581 [견적] 개붕이 견적 도와죠요 3 가기그게그거 0 1 일 전 88
180580 [모바일] 이거 삼전케어플러스로 넘어가야할정도임? 2 마법부오러사무국장 0 1 일 전 266
180579 [컴퓨터] 모니터 이상함 1 띵똥이 0 1 일 전 93