나는 투명 배경에 흰색 아이콘 세트가 있으며, 모두 투명 배경에 검정색으로 반전시키고 싶습니다. Python : 투명 배경 (PIL, Gimp 등)이있는 이미지 반전
는 PIL (ImageChops)을 시도했지만 투명 배경과 함께 작동하지 않습니다. 저는 또한 Gimp의 Python 인터페이스를 사용해 보았습니다.하지만 거기에는 운이 없었습니다.파이썬에서 어떻게 반전이 가장 잘 이루어 집니까?
나는 투명 배경에 흰색 아이콘 세트가 있으며, 모두 투명 배경에 검정색으로 반전시키고 싶습니다. Python : 투명 배경 (PIL, Gimp 등)이있는 이미지 반전
는 PIL (ImageChops)을 시도했지만 투명 배경과 함께 작동하지 않습니다. 저는 또한 Gimp의 Python 인터페이스를 사용해 보았습니다.하지만 거기에는 운이 없었습니다.파이썬에서 어떻게 반전이 가장 잘 이루어 집니까?
ImageChops.invert
또한 각 픽셀의 알파 채널을 뒤집을 수 있습니다.
이
은 작업해야한다 : 나는 도토리의 접근을 시도import Image
img = Image.open('image.png').convert('RGBA')
r, g, b, a = img.split()
def invert(image):
return image.point(lambda p: 255 - p)
r, g, b = map(invert, (r, g, b))
img2 = Image.merge(img.mode, (r, g, b, a))
img2.save('image2.png')
자신의'invert()'를 정의하는 대신에, 각 채널은''L ''형을 가지고 있기 때문에 각 채널에서''ImageOps.invert()'를 사용할 수 있습니다. (또는 나는'ImageChops.invert()'라고 생각하지만 나는 결코 그것을 테스트하지 않았다). – Ray
,하지만 결과는 (아래 이미지의 상단 부분) 다소 이상하다.
하단 아이콘은 정말 내가의 변환 Image Magick '을 사용하여 달성, 원하던 방법 :
convert tools.png -negate tools_black.png
(안 파이썬 자체하지만, 파이썬 래퍼 같은 존재 PythonMagickWand
유일한 단점은 ImageMagick을 작동 시키려면 많은 종속물을 설치해야하지만, 강력한 이미지 마니 인 것 같습니다. 퓨전 프레임 워크.
맞습니다. 게시 한 코드는 흰색 픽셀 만 검정색으로 변환하는 코드였습니다. 제 답변을 일반적인 반전으로 업데이트했습니다. – Acorn
이 같은 PIL
로 아주 쉽게이 작업을 수행 할 수 있습니다
convert('RGBA')
를 사용하여, RGBA
로 표시되어 있는지 확인합니다.RGBA
개의 밴드로 분리합니다.RGB
개의 밴드로 원하는 것을 수행하십시오 (귀하의 경우에는 point
함수를 사용하여 모두 검정색으로 설정 함).하지만 알파 밴드는 만지지 마십시오.을 heres 코드 :
import Image
im = Image.open('image.png')
im = im.convert('RGBA')
r, g, b, a = im.split()
r = g = b = r.point(lambda i: 0)
im = Image.merge('RGBA', (r, g, b, a))
im.save('saved.png')
이에게 기회를 제공합니다.
import Image, numpy
pixels = numpy.array(Image.open('myimage.png'))
pixels[:,:,0:3] = 255 - pixels[:,:,0:3] # invert
Image.fromarray(pixels).save('out.png')
아마도 "지금까지 가장 빠른 해결책은"각 픽셀에 대한 루프 내에서 파이썬 코드를 해석하지 않기 때문입니다.
이미지의 형식은 무엇입니까? – Acorn
파일 형식은 png – Hoff