2014-05-23 8 views
0

내 응용 프로그램에 이미지를로드하고 해당 이미지를 base64 데이터로 변환 한 다음 HTML 페이지에서 다시 표시합니다. 그러나 내가 그렇게하면 색상이 달라집니다! getPixel32를 사용하여 이미지 데이터를 가져 왔습니다. Flash가 사전 계산 된 값을 사용한다는 이유를 읽었습니다. 저는 그것을 모호하게 이해했습니다. 누군가가 기사를 설명하거나 기사에 링크하여 진행 상황과 해결 방법을 설명 할 수 있습니까? 그것은 그것의 색상 프로파일을 잃은 또한비트 맵 데이터의 복사본이 올바르지 않습니까?

byteArray = bitmapData.getPixels(new Rectangle(0, 0, bitmapData.width, bitmapData.height)); 

, 그것은 가능합니다 : 코드의

발췌문?

내가 스크린 샷을 64 개 데이터를 기초로 변환하는 데 사용하는 코드를 포함하고있어
UPDATE. http://pastebin.com/Q7MiWg9u

+0

JPG 또는 PNG를 출력하면 차이가 있습니까? PNG에는 미리 곱셈 된 알파가 있지만 JPG는 알파를 전혀 지원하지 않습니다. – Vesper

+0

가능한 경우 자체 질문을 포함해야하며 코드에 대한 링크 만 게시하지 말고 질문에 포함하십시오! – ndm

답변

2

아주 좋은 질문입니다. 이 글은 적어도 문제의 원인을 이해하는 데 도움이 될 것이기 때문에 주석과 초를 위해 너무 길기 때문에 답변으로 게시 할 예정입니다. http://www.quasimondo.com/archives/000665.php

모든 것은 사전 곱하기 알파와 플래시 방식 때문입니다. 그것으로 작동합니다.

몇 가지 작은 테스트를 통해 getPixel32 및 setPixel32를 사용하여 실제로이를 수정할 수 있는지 알아볼 것입니다. 여기서 unmultipleid 값을 사용하고 설정해야하는 실제 값을 계산할 수 있습니다.

+0

링크는 매우 도움이되었지만 주로 머리 위로 쓰였습니다. 어쩌면 요약 해 주시겠습니까? 작은 테스트를 실행할 수 있습니까? 그게 내가 무슨 일이 일어나는지 이해하는 데 도움이 될거야. –

+0

또한이 기사에서는 이와 같은 8 자 16 진수 색상을 "# 000000"과 같이 일반적인 6 자 대신 "# 00000000"이라고 씁니다. 나는 캐릭터 중 2 개가 알파인지 알고 있니? –