FromBinary 메서드가있는 이미지 구성 요소를 사용하고 있습니다. 입력 스트림을 바이트 배열로 어떻게 변환합니까?
HttpPostedFile file = context.Request.Files[0];
byte[] buffer = new byte[file.ContentLength];
file.InputStream.Read(buffer, 0, file.ContentLength);
ImageElement image = ImageElement.FromBinary(byteArray);
답변
BinaryReader 객체를 사용하여 다음과 같이 스트림에서 바이트 배열을 반환합니다.
byte[] fileData = null;
using (var binaryReader = new BinaryReader(Request.Files[0].InputStream))
{
fileData = binaryReader.ReadBytes(Request.Files[0].ContentLength);
}
답변
BinaryReader b = new BinaryReader(file.InputStream);
byte[] binData = b.ReadBytes(file.InputStream.Length);
2 행은
byte[] binData = b.ReadBytes(file.ContentLength);
답변
InputStream.Position 파일이 스트림의 끝으로 설정되어 있으면 작동하지 않습니다. 내 추가 라인 :
Stream stream = file.InputStream;
stream.Position = 0;
답변
귀하의 질문에서 buffer와 byteArray는 모두 byte [] 인 것 같습니다. 그래서:
ImageElement image = ImageElement.FromBinary(buffer);
답변
stream.copyto 전에 stream.position을 0으로 재설정해야합니다. 그럼 잘 작동합니다.
답변
Web Pages v2를 사용하는 경우 이미지의 경우 WebImage 클래스를 사용하십시오.
var webImage = new System.Web.Helpers.WebImage(Request.Files[0].InputStream);
byte[] imgByteArray = webImage.GetBytes();