이미지의 투명도를 제거하기 위해 Bitmap 객체의 기본 바이트를 조작하는 것에 어려움을 겪고 있습니다. Bitmap 객체를 사용하는 정적 투명도 제거 메서드가 있습니다. 관련 코드 : http://pastebin.com/ZjjPSdx8C#의 비트 맵 바이트 조작
파일을 기반으로 비트 맵 개체를 호출하면 비트 맵이 변경되지 않습니다. 만약 내가 제대로 이해가 http://support.microsoft.com/kb/814675
에 따라 파일을 기반으로 그래서 비트 맵을 복사하는 방법을 만들어 때문입니다 : http://pastebin.com/9rXRJ6cx
private Bitmap LoadBmp(string name)
{
Assembly asm = Assembly.GetExecutingAssembly();
string loc = Path.GetDirectoryName(asm.Location);
string path = Path.Combine(loc, "Images\\" + name);
Bitmap notsafe = (Bitmap)Bitmap.FromFile(path);
return ImageProcessor.SafeBitmap(notsafe);
...
모든 벌금과 멋쟁이. PNG는 잘 처리하지만 GIF는 사용하지 않습니다. 그들은 끔찍하게 왜곡 된 을 나옵니다.
byte[] b = new byte[2048];
int c;
byte[] imgArr;
using (FileStream fs = new FileStream(path, FileMode.Open))
{
using (MemoryStream ms = new MemoryStream())
{
while ((c = fs.Read(b, 0, b.Length)) > 0)
ms.Write(b, 0, c);
imgArr = ms.ToArray();
}
}
return (Bitmap)Bitmap.FromStream(new MemoryStream(imgArr));
이는 지프의를 왜곡하지 않습니다
바이트 배열에 파일을 작성하고, 그 다음에 비트 맵을 내놓고 다른 방법을 시도했다. 그러나 내 투명성 제거 방법은 더 이상 PNG에서 작동하지 않습니다! 분명히 뭔가 잘못하고 있습니다. 누군가가 도울 수 있기를 바랍니다.
'File' 객체에 멋진'ReadAllBytes()'메소드가있는 경우,'System.IO.File.ReadAllBytes()' –