문제

Im 중간에 10 x 10 제곱 투명 틈이있는 작은 정사각형 32 x 32 픽셀을 생성하려고합니다.

이것이 내가 지금까지 가지고있는 것입니다.

private Image CreatePicture(){
    // Create a new Bitmap object, 32 x 32 pixels in size
    Bitmap canvas = new Bitmap(32,32,System.Drawing.Imaging.PixelFormat.Format16bppRgb555);
    for(int i=10;i<21;i++){
        for(int p=10;p<21;p++){
            canvas.SetPixel(i,p,Color.Lime);
        }
    }
    canvas.MakeTransparent(Color.Lime);
    // return the picture
    return canvas;
}

그것은 거칠고 최종 "최적화 된 버전"이되지 않을 것입니다. 그것은 단지 거친 데모 스크립트입니다. 문제는 반환 된 이미지가 투명성이 아니라는 대신 회색 상자를 대신하지 않는다는 것입니다.

모든 도움이 감사합니다.

남자 이름

업데이트 : PixelforMat 설정으로 스크립트를 Alpha RGB 형식으로 업데이트하여 실제로 런타임에 오류없이 수용합니다. 이제 "canvas.maketransparent (color.lime);" 줄은 중간에 라임 상자를 보여줍니다. 그 회색 상자는 회색 배경과 같은 색상을 보여줍니다. 따라서 투명성이 투명성을 형성하지 않는 것처럼 보이는 것처럼 보입니다!

private Bitmap CreatePicture(){
    // Create a new Bitmap object, 50 x 50 pixels in size
    Bitmap canvas = new Bitmap(82,82,System.Drawing.Imaging.PixelFormat.Format32bppArgb);

    for(int i=10;i<71;i++){
        for(int p=10;p<71;p++){
            canvas.SetPixel(i,p,Color.Lime);
        }
    }
    canvas.MakeTransparent(Color.Lime);
    // return the picture
    return canvas;
}
도움이 되었습니까?

해결책

이미지를 사용하거나 표시하는 방법에 따라 다릅니다. PNG와 GIF는 투명성을 지원하는 두 가지 파일 형식입니다.

투명성의 비트 맵 설정을 위해 다음을 사용했습니다.

Graphics.FromImage (BitMap) .fillRectangle (Brushes.Transparent, ...)을 투명한 영역으로 설정하려면 파일을 PNG로 저장하여 투명성을 가진 이미지를 얻었습니다.

나는 또한 Maketransparent 방법을 시도하고 문제를 일으켰고 브러시가 달렸다. Transparent는 내 상황에 효과가있는 솔루션이었습니다.

이것이 당신에게 조사의 지시를주기를 바랍니다.

마지막으로, 너비와 높이 만있는 비트 맵 객체를 만듭니다. 픽셀 형식이나 즉, bitmap = new BitMap (너비, 높이)이라고하는 것을 지정하지 않습니다.

다른 팁

[...]Format16bppRgb555

여기에 알파 채널 (... RGBA)이있는 형식을 사용해보십시오. 또한 출력이 나중에 이미지 인 경우 Alpha 채널을 지원하는 PNG와 같은 이미지 형식을 사용해야합니다.

이미지 형식을 형식 16bppargb1555로 변경해야 할 것입니다.

지금은 알파 정보가없는 픽셀 당 16 비트 인 Format32bppargb 또는 Format16bpprgb555를 사용하고 있습니다. 투명성에는 알파 채널 또는 알파 비트가 있어야합니다.

당신은 그냥하지 않습니다 SetPixel() 에게 색상 .TRANSPARENT? 그런 다음 색상 대신에 MakeTransparent? 그리고 다른 사람들이 언급했듯이; 알파 채널이있는 픽셀 형식이 필요합니다.

Maketransparent 기능이 작동합니다. 투명성 키가 올바르지 않기 때문에 "회색 패치"가 있습니다. 회색 패치가 어떤 색상에 있든 투명한 속성을 설정하면 이미지가 표시되면 회색 패치가 실제로 투명해질 것입니다. 내가 얻은 기본 회색 패치는 색상의 "컨트롤"또는 기본적으로 기본 창을 형성하는 배경색으로 표시되었습니다. 회색 패치가 무엇이든간에 투명성 키를 변경하고 (내 경우 제어에서) 문제가 해결되며, 하드 드라이브 NECCESSARY에 파일을 저장하지 않습니다. 힘내 친구 야.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top