10 May 2016

이미지를 전달받았을 때, 배경색이 투명으로 바꿔야할 경우가 있습니다. 여러가지 방법이 있지만, 그 중 두 가지 방법을 쓰려고 합니다.

첫번째는 ImageMagick을 이용한 방법입니다.

	convert input.png -fuzz 10% -transparent white output.png

두번째는 Python의 Pillow 라이브러리를 이용한 방법입니다. RGBA 데이터로 얻어 픽셀을 검사하고 알파값을 교체합니다.

	from PIL import Image
	import os, sys
	if __name__ == '__main__':
		img = Image.open(sys.argv[1])
		img = img.convert("RGBA")
		datas = img.getdata()

		newData = []
		for item in datas:
			if item[0] > 200 and item[1] > 200 and item[2] > 200:
				newData.append((item[0], item[1], item[2], 0))
			else:
				newData.append(item)

		img.putdata(newData)
		filename = os.path.splitext(sys.argv[1])
		img.save(filename[0] + "_output" + filename[1], "PNG")