2011-05-08 6 views
0

비트 맵에서 개별 픽셀의 알파 채널을 어둡게하려고합니다. 나는 픽셀의 RGB를 유지하고 싶지만 단지 픽셀을 투명하게 만들어야한다. Color 클래스를 살펴본 후 Color.argb (int, int, int, int) 메서드를 시도했지만 좋지는 않습니다. 픽셀의 원래 RGB를 유지하면서 픽셀의 알파를 어떻게 설정할 수 있습니까?픽셀의 알파 값을 어둡게하기 android

미리 감사드립니다.

[편집] lol terrapin :). 안녕하세요, 어떻게 내 비트 맵을 구성하는 것입니다. 그것이 당신이 의미하는 것이면 나는 기본 이미지가 없습니다. 내가 뭘 하려는지 기본적으로 특정 픽셀 반 투명하게 있습니다. 나는 비트 맵을 가지고 있고 비트 맵에 원을 배치했다. 나는 원 안에있는 픽셀만을 대상으로하는 알고리즘을 가지고 있으며 그 픽셀을 분홍색으로 바꿀 수 있습니다. 내가 원하는 것은 그 의미 :

bgr.setPixel(i,y,Color.argb(50,255,255,255)); 

[편집]

BitmapFactory.Options bfo = new BitmapFactory.Options(); 
     bfo.inSampleSize = 1; 

     bm = BitmapFactory.decodeByteArray(imageArray, 0, imageArray.length, bfo); 
     bgr = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), bm.getConfig()); 
     bgr = bm.copy(bm.getConfig(), true); 

답변

2

인사말을 만드는 경우, 여전히 절반 원래 픽셀의 색상을 유지 원의 각 픽셀을 확인하고 SMI 투명하게하다 테라 핀. 코드 스 니펫이 올바르게 보입니다. 내 머리 꼭대기에서 단지 두 가지 생각.
1) 비트 맵이 ARGB_8888 형식입니까? 상황에 따라 기본적으로 다른 형식이 나타날 수 있습니다.
2) 알파 값)되지 비율 (절대, 그래서 난 당신이 첫 번째 매개 변수가 없습니다 (50)

편집 127되고 싶은 생각 : 당신이 알파를 줄일 때 또한, 음, 당신은 당신이 있는지 확인해야 효과적인 방법으로 보여줄 배경 위에 그리기. 문제를 해결했거나 더 많은 도움이 필요하면 알려주세요 (더 많은 코드가 필요합니다).

편집 : 문제는 배경이 없다고 생각합니다. 알파를 줄이고 검은 색 위에 그려 넣으면 그 색이 더 어둡게 보일뿐입니다. 즉 (127, 255, 255, 255)는 (255, 127, 127, 127)과 비슷합니다. 나는 라이브 월페이퍼이기 때문에 항상 캔버스로 작업하고 있습니다. 여기에 내가 뭔가를하는 방법이 있습니다 :
c.drawBitmap (sBG, 0, 0, null);
c.drawBitmap (sSprite, mWidth/2, mHeight/2, null);
sBG는 내 "유령 같은"스프라이트 (sSprite는 알파 ~ 127을 가짐)를 통해 보여주는 히로 그래픽으로 가득 찬 비트 맵입니다.
캔버스에 비트 맵을 오버레이하기 만하면 캔버스를 렌더링 할 때 모두 좋습니다. :-)

편집 : 알파를 줄이는 것은 일반적으로 뒤에서부터 보여주기 위해 사용됩니다. 나는 당신이 (수학적으로) 무엇을 의미하는지 정확히 결정할 필요가 있다고 생각합니다. "색이 희미 해져 약간 반투명 해 보입니다." 예를 들어 빨간색을 분홍색으로 바꾸면 흰색으로 혼합하는 것입니다. 이는 흰색 배경을 가진 반투명과 같습니다 (흰색으로 혼합하는 것은 채색을 파스텔로 바꾸는 방법입니다). GIMP 또는 Photoshop (레이어 알파를 조정할 수 있음)을 가지고 놀면서 자신의 요구에 가장 적합한 효과가 무엇인지 결정한 다음 Android에서이를 복제하려고 시도하는 것이 좋습니다.

편집 : 나는 이것이 당신이 갈가리 찢기고 잘하면 흥미로운 것들임을 언급하도록 "권유 할 것"이라고 생각했습니다. 컴퓨터 그래픽에서 때로는 원하는 효과를 얻기 위해 반드시 직관적이지 않은 작업을 수행해야합니다. 설득력있는 반투명이 중요하지 않다는 것을 주장 할 것입니다 ... 배경 객체, 조명 및/또는 애니메이션을 사용해야합니다. 이 특정 효과에 대해 많이 알지는 못하지만 한 가지 유용한 링크가 있습니다. http://www.neilblevins.com/cg_education/translucency/translucency.htm
금속성 텍스처를 만드는 것에 대해 알고있는 것입니다. 그리고 거기에 속임수가 있습니다 : 거의 항상 반사를 사용해야합니다.이 유튜브 비디오는 좋은 데모입니다 : http://www.youtube.com/watch?v=k6ZiRNkbWPw
정말 HDRi를 선택하는 사람들! 예 : 반사 구체를 여기에서보십시오 : http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/HDRi

+0

freeman 업데이트 게시물 – turtleboy

+0

freeman Mmm 이제 혼란 스럽네요. : 나는 당신이 묘사하는 오버레이를 통해 또 다른 비트 맵을 밝히고 싶지 않습니다 .... 제 생각 엔. 픽셀의 색상을 희미 해져 반투명 해 보일 수 있습니까? 미안, 내가 당신의 지점을 놓친 경우 – turtleboy

+0

freeman ok 나는 당신이 의미하는 것을보고 explainations을 주셔서 감사합니다. 나는 포토샵 아이디어를 시도 할 것이다. – turtleboy

관련 문제