gif 파일을 byte []로 변환하고 싶습니다.C#에서 gif 파일을 byte []로 변환하는 두 가지 방법
두 가지 방법을 시도했지만 결과가 다릅니다. 어느 것이 옳았습니까?
방법 1 :
bytes =File.ReadAllBytes(filepath)
사용함; 이것은 바이트 배열을 반환합니다.
Methond 2
private byte[] ImageToBytes(Image image, ImageFormat format) { using (MemoryStream ms = new MemoryStream()) { image.Save(ms, format); return ms.ToArray(); } } Bitmap image = new Bitmap(@"c:\\1.gif");
이어서
2 바이트 bytes = ImageToBytes(image, ImageFormat.Gif);
차이가 조금있는 부른다. 어느 쪽을 신뢰해야합니까?
'ImageFormat.Gif'가'ImageFormat.Bmp' 또는'ImageFormat.Png'으로 변경 되었다면 그것들을 기능적으로 동일하게 만들지 않겠습니까? –
아니요. 디스크에서 바이트를 복사하는 것은 기본적으로 다른 이미지 형식간에 메모리를 변환하는 것과 다릅니다. 출처는 gif입니다. 물론'ImageFormat.Bmp' 나'ImageFormat.Png'은 다를 것입니다. – spender
맞습니다. 물론, 파일의 나머지 부분이 아니라 픽셀 데이터에 대해서 생각하고있었습니다. BMP와 PNG는 일반적으로 무손실 형식이기 때문에 변환이 이루어지면 이미지 화질이 떨어지지 않아야합니다. 단 헤더 등이 완전히 다를 것입니다. 맞습니까? –