2012-01-04 1 views
0

알파 값을 가진 PNG-Image가 있고 색상 양을 줄여야합니다. 나는 이미지의 모든 색상에 대해 256 색 이상을 가져야하고, 지금까지 내가 시도한 모든 것을 (페인트 숍에서 leptonica 등으로) 알파 채널의 이미지를 벗겨서 사용할 수 없도록 만듭니다. 내가 원하는 걸 저 밖에 있는게 있니?알파 값을 가진 PNG 이미지의 색상을 줄이기위한 C++ (또는 도구) 용 라이브러리가 있습니까?

편집 : 8 비트 팔레트를 사용하고 싶지 않습니다. 내 프로그램이 이미지를 처리 ​​할 수 ​​있도록 색상 수를 줄여야합니다.

답변

1

ImageMagick을 사용해 보셨습니까?

+1

예. 출력이 256 이하로 색상을 줄이면 (아마도 팔레트로 전환 할 때) 알파 값을 떨어 뜨리는 것처럼 보이고 항상 잘못된 색상의 픽셀이 많은 나쁜 결과를 생성하기 때문에 버그가있는 것 같습니다. 일반 사진에서는 보이지 않을 수도 있지만 이미지의 색상이 많은 영역이 많으며 디더링이 너무 뚜렷합니다. – HardCoder

1
단지 새로운 webbrowsers에 알파를 렌더링 알파 투명도와

8 비트 PNG 파일. , similar question

+0

답장을 보내 주셔서 감사합니다. 내 질문에 더 정확 했어야했는데 (편집했습니다) 브라우저 나 다른 프로그램에서 이미지를 표시 할 필요가 없지만 내 프로그램으로 계속 처리하려면 이미지가 필요하지 않습니다. 내가 당신의 모든 링크를 확인하고 불행히도 (내가 놓친 것이 아니라면) 그들은 내 문제에 대한 해결책에 더 가까이 다가 가지 못한다 ... – HardCoder

+0

8-bt 팔레트를 사용하지 않으려한다면 왜 256 색 미만이 필요한가? ? – Motes

+0

텍스처 메모리를 절약하기 위해 조각 쉐이더의 룩업 테이블로 이미지를 사용하고 싶습니다. 그런 식으로 32 비트 대신 고화질 투명도를 위해 픽셀 당 8 비트를 사용합니다 ... – HardCoder

1

당신이 설명하는 문제도 참조 http://www.8bitalpha.com/

:

Adobe Fireworks

pngquant

무료 웹 사이트 : 여기

변환을 수행 몇 가지 도구와 웹 사이트입니다 PNG 형식에 고유합니다. 항목 at Wikipedia을보고 색상 옵션 테이블에 Indexed & alpha에 대한 항목이 없음을 유의하십시오. 256 색 각각에 알파 값을 추가하는 기능이 있지만 일반적으로 하나의 팔레트 항목 만 완전히 투명하게 만들고 나머지는 완전히 불투명하게 만듭니다.

Paint Shop Pro에는 팔레트가있는 PNG에서 부분 투명도를 블렌딩하거나 시뮬레이트하는 데 사용할 수있는 몇 가지 옵션이 있습니다.

+0

팔레트 형식을 사용하지 않고 특정 숫자로만 색상 수를 줄이려합니다. 내 자신의 프로그램으로 png에서 rgba 색상을 추출 할 수 있습니다. 색상이 적게 유지되고 알파가 그대로 유지되어야합니다. Paint Shop Pro를 사용하면 가능합니까? – HardCoder

+0

필자는 그것을 다시 확인했으며, 8 비트 테이블의 각 엔트리에 알파 값을 설정하고 효과적으로 팔레트를 256 RGBA 색상으로 변환하는 방법이 가장 확실합니다. – HardCoder

+0

@HardCoder, 나는 내 답변에서 "256 색 각각에 알파 값을 추가 할 수있는 능력이 있습니다"라고 말했습니다. 알파는 독립적이지 않기 때문에 실제로 팔레트를 제한합니다. IE6도 제대로 표시하지 않으므로 자주 사용하지 않는 것으로 보입니다. –

관련 문제