SDCard에 저장된 PNG의 특정 색상을 변경해야합니다. 비트 맵 위에 또는 다른 객체 위에 틴 컬러를 사용할 수 없습니다. 특정 픽셀 색상이 아닌 모든 이미지에 색조를 적용 할 수 있기 때문입니다.Android에서 픽셀 단위로 PNG 색상을 변경하는 가장 좋은 방법은 무엇입니까?
왜 이렇게해야합니까?
아바타 응용 프로그램을 개발하려고하는데 팔레트에서 선택한 색상으로 아바타의 머리카락을 바꿀 수 있어야합니다. 이 머리카락에는 국경 용과 머리카락 용의 두 가지 색상이 있습니다. 나는 공기 색을 바꾸고 국경을 유지하고 싶다.
이 간단한 경우이지만 이미지에 둘 이상의 색상이있을 수 있습니다.
나는 해결책을 찾고 있었다. 이것은 내가 찾은 유일한 일 (meaby 더있을 수 있지만 나는 운이 아니다) :
Android Bitmap: Convert transparent pixels to a color
그리고 이것은 거기 노출되는 것입니다 :
Bitmap b = ...;
for(int x = 0; x<b.getWidth(); x++){
for(int y = 0; y<b.getHeight(); y++){
if(b.getPixel(x, y) == Color.TRANSPARENT){
b.setPixel(x, y, Color.WHITE);
}
}
}
내가 알고 싶은 이것을하는 더 좋은 방법이 있습니다. 뭔가 같은 :
루프를 사용하여 픽셀을 확인하는 것이 좋은 성능인지는 모르겠다. 1080 x 1080 이미지를 상상해보십시오.
미리 감사드립니다.
투명도를 사용하여 어떤 픽셀이 머리카락인지 나타 냅니까? – samgak
특히 성능 및 소형성을 위해 OpenCV Matrix API를 사용하는 것이 좋습니다. –
@samgak 같은 이미지에서 여러 색상을 변경할 수 있으므로 투명도를 사용하지 않습니다. –