python-imaging-library image - PIL(python-imaging)으로 투명한 gif(또는 png)를 만드는 법



merge fromarray (2)

PIL로 투명한 gif를 만들 려고합니다. 지금까지 나는 이것을 가지고있다 :

    from PIL import Image

    img = Image.new('RGBA', (100, 100), (255, 0, 0, 0))
    img.save("test.gif", "GIF", transparency=0)

지금까지 발견 한 모든 것은 기존 이미지를 조작하여 투명도 설정을 조정하거나 투명 이미지를 다른 이미지 위에 중첩시키는 것을 의미합니다. 투명 GIF를 만들고 싶을뿐입니다.


Answers

다음 스크립트는 중간에 빨간색 원이 그려진 투명한 GIF를 만듭니다.

from PIL import Image, ImageDraw

img = Image.new('RGBA', (100, 100), (255, 0, 0, 0))

draw = ImageDraw.Draw(img)
draw.ellipse((25, 25, 75, 75), fill=(255, 0, 0))

img.save('test.gif', 'GIF', transparency=0)

PNG 형식의 경우 :

img.save('test.png', 'PNG')

JPEG는 모든 종류의 이미지 (또는 심지어 대부분)에 대해 가장 가벼운 것은 아닙니다. 모서리와 직선 및 일반 "채우기"(단색 블록)는 압축 수준에 따라 흐리게 나타나거나 아티팩트가 표시됩니다. 이는 손실이 많은 형식이며 아티팩트를 명확하게 볼 수없는 사진에 가장 적합합니다. 직선 (예 : 그림 및 만화 등)은 PNG에서 매우 잘 압축되며 무손실입니다. GIF는 투명도를 IE6에서 작동 시키거나 애니메이션을 원할 때만 사용해야합니다. GIF는 256 색 팔레트 만 지원하지만 무손실입니다.

기본적으로 이미지 형식을 결정하는 방법은 다음과 같습니다.

  • IE6에서 작동하는 애니메이션 또는 투명도가 필요한 경우 GIF (참고 : PNG 투명도는 IE6 이후에 작동 함)
  • 이미지가 사진 인 경우 JPEG.
  • PNG 만화 또는 다른 그림 에서처럼 직선이거나 투명도가있는 넓은 색상 범위가 필요한 경우 (그리고 IE6는 요소가 아님)

그리고 언급 된대로, 당신이 어떤 자격이 될지 확신이 없다면 각기 다른 압축 비율로 포맷을 시도하고 그림의 품질과 크기를 비교하여 어느 것이 가장 좋다고 생각 하는지를 선택하십시오. 나는 단지 엄지 손가락의 규칙을주고있다.





python python-imaging-library transparency gif imaging