새로운 표현 질문 : 나는이 .tif 파일의 수가 많은바이트 배열
대부분의 (전부는 아니지만) 다음과 같은 정의가 :
- 비트 깊이 : 1
- 압축 : CCITT의 T.6 (그룹 4)
일부는 다중 있으며, 일부는 없습니다. 나는 다음 SQL 서버 (12) DB, VARBINARY 컬럼이 바이트 배열을 저장
private byte[] LoadArchivedFile()
{
FileStream file = File.Open(fileAddress, FileMode.Open, FileAccess.Read, FileShare.Read);
byte[] fileByteArray = ReadFully(file, 0);
return fileByteArray;
}
:
나는 다음과 같은 사용하여로드.이제이 .tif 파일을 볼 수있는 MVC2 웹 페이지를 만들고 있습니다. 이 과정은 다음 있어야하는데 다음이 .tif
- 부하 바이트 배열
Image
- 로 변환이
- 보내 JPEG로 해당 페이지를 변환하려면 페이지를 브라우저에 연결
개발 환경에서 모든 것이 완벽하게 작동합니다. 내가 목표 IIS (현재 6, 나는 7.5에 대한 요청을 연)에 프로젝트를 설치하면, 프로세스가 다음 줄에 실패
[... load byte array from DB]
byte[] imageBinary = (byte[])results.fileBinary;
using(MemoryStream ms = new MemoryStream(imageBinary))
{
Image image = Image.FromStream(ms); <---- FAILS HERE
[...]
}
스택 트레이스 :
이제System.ArgumentException: Parameter is not valid.
at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)
at System.Drawing.Image.FromStream(Stream stream)
at [MyCode]
, 내가받은 바이트 배열은 결함이 아닙니다. 즉, 입니다. 말하자면 DB의 동일한 데이터입니다. 심지어 몇 바이트, 전체 길이를 비교해도 ... 어쨌든, 그것은 같은 소스입니다. 이것은 잘못이있는 곳이 아닙니다.
I found another question (비슷한 것은 아니지만) 문제가 있습니다. 비트 깊이, 픽셀 형식, 압축 및 코덱의 문제가 있습니다. 바이트 배열에서 Image로 다시 변환 한 후에 Format1bppIndexed가되었지만 원본 이미지의 픽셀 형식이 무엇인지 모릅니다.
나는 많은 상실감이있다. 대상 컴퓨터에 코덱이없는 문제가 있습니까? 이미지 바이너리를 DB에 업로드하기 전에해야 할 일이 있습니까?