마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

사진 편집 질문 드립니다. 배경 살짝 어둡게 하는 방법 ..

+1 추천
이미지 사진 살짝 어둡게 하고 자를 부분만 밝게 하는 부분을 어떻게 해야할지 감이 안잡합니다.

예제나 함수를 못찾겠습니다.
hlopwos (190 포인트) 님이 2015년 8월 19일 질문

1개의 답변

0 추천
음 이미지자체를 그런식으로 만드는건 너무 복잡하고 차라리 자를 부분을 표시하는 것을 현제 화면위에 뷰어를 하나더 올려서 처리하는 것은 어떠신지요?

올려진 뷰의 알파값을 이용해서 하시면 대충 비슷하게 이루어 질듯 한데요..
컴러기 (22,230 포인트) 님이 2015년 8월 19일 답변
Bitmap CropBitmapTransparency(Bitmap sourceBitmap)
    {
        int minX = sourceBitmap.getWidth();
        int minY = sourceBitmap.getHeight();
        int maxX = -1;
        int maxY = -1;
        for(int y = 0; y < sourceBitmap.getHeight(); y++)
        {
            for(int x = 0; x < sourceBitmap.getWidth(); x++)
            {
                int alpha = (sourceBitmap.getPixel(x, y) >> 24) & 255;
                if(alpha > 0)   // pixel is not 100% transparent
                {
                    if(x < minX)
                        minX = x;
                    if(x > maxX)
                        maxX = x;
                    if(y < minY)
                        minY = y;
                    if(y > maxY)
                        maxY = y;
                }
            }
        }
        if((maxX < minX) || (maxY < minY))
            return null; // Bitmap is entirely transparent

        // crop bitmap to non-transparent area and return:
        return Bitmap.createBitmap(sourceBitmap, minX, minY, (maxX - minX) + 1, (maxY - minY) + 1);
    }
뷰를 하나 더 얹는 다는 말씀은 구체적으로 어떤 말씀인지 잘이해가 가지 않습니다.
alhpa 값이 검정색 반투명인것을 얹어 놓으신다는 말씀이신지요 ?
Crop하는 영역 즉 Rect 가 움직일때마다 Touch이벤트로 alhpa값을 어떻게 응용해야 할지 감히 잡히지 않습니다.
Crop 할 Rect는 구하신거져?
그렇다면
Bitmap CropBitmapTransparency(Rect SrcRect, Rect CropRect) {
    Bitmap rtn= null;
    Paint p = new Paint();
    rtn = Bitmap.CreateBitmap(SrcRect.getWidth, SrcRect.getHieght. Bitmap.Config.ARGB8888);
    Canvas cv = new Canvas(rtn);
    cv.DrawColor(0x88000000);
    p.setColor(0x00000000);
    cv.DrawRect(CropRect, p);
    return rtn;
}
로 위에 올릴 이미지 만들어보세요.
*일단 코드는 미검증입니다. 오류날수도 있을꺼예요
...