0

입력 스트림을 이미지로 변환하려고합니다.입력 스트림을 이미지로 변환하십시오.

아래 코드를 사용해 보았습니다.

var img = Image.FromStream(imagePathErrorMessage.StreamObject); 

나는 MVC 뷰는 다음과 같은 오류가 발생합니다

@foreach (var img in imageSet) 
            { 
             <div class="thumbnail thumbnail-inline"> 
              <label class="checkbox-inline"> 
               <input type="checkbox" onchange="DisplayedImageOnchange(this)" value="@img.Id" /> 
               <img src="@img.Url" class="img-thumbnail" /> 
              </label> 
              <div class="btn-block"> 
               <input type="file" class="replace file-loading" /> 
               <button class="btn btn-xs btn-danger delete">delete</button> 
              </div> 
             </div> 
            } 

public JsonResult Upload(object model) 
     { 
      var img = Image.FromStream(imagePathErrorMessage.StreamObject); 

      return Json(new AdCreative { Id = 100, Url = Url.Content("data:image;base64,@System.Convert.ToBase64String('" + img + "')") }, JsonRequestBehavior.AllowGet); 
     } 

에 IMG 전달해야합니다

enter image description here

아마존 S3 응답에서 위의 InputStream을.

enter image description here

답변

0

첫째, 당신은 예외 창에 '자세히보기'를 클릭하고 InnerException 속성을 확장하여 더 많은 정보를 찾을 수 있습니다.

imagePathErrorMessage.StreamObject이 null이 아니며 허용되는 형식 중 하나의 이미지를 제공했는지 확인 했습니까?

이들은 JPG, BMP, TIF, GIF 및 PNG입니다. 이미지에 투명도 데이터가 포함되어 있으면 먼저 PNG로 변환해야합니다.

: 당신은 그것을 위해 내가 스트림이 유효한 경우 대신 Image

BitmapImage을 할 거라고 생각, RAW 데이터를 사용할 수 없습니다, 그것은 또한 당신이 예를 들어, 읽기를 시작하기 전에 위치 0에있을 필요가있을 것이다 OP 편집에 대한

imagePathErrorMessage.StreamObject.Position = 0; 
var img = Image.FromStream(imagePathErrorMessage.StreamObject); 

편집 :

당신이 다시 ResponseStream을 설정하도록 변환되지만 전에이 destination에 복사됩니다 후 제로 을 배치해야합니까?

두 번째 편집 (스크린 샷에 표시된 중단 점에서, 당신이 61,153 길이와 CurrentPosition 0 스트림을 보여줄 것 destination 맴돌고 있다면?) :

이것은 사용하는 경우 이유 후 Loading an image from a stream without keeping the stream open 설명 대답 Image.FromStream 그러면 스트림이 이미지의 수명 동안 열려 있어야합니다.

+0

이 질문을 업데이트했습니다. – Kapil

+0

예 복사하기 전에 StreamObject.Position = 0으로 설정했습니다. – Kapil

+0

글쎄, 스트림 객체가 유효하고 길이가 0이고 위치가 0 인'Image.FromStream (imagePathErrorMessage.StreamObject); '지점에서 인증을받은 경우 내가 제안 할 수있는 유일한 것은 해당 스트림의 데이터는 지원되는 이미지 유형 중 하나로 변환 할 수 없습니다. – paul

관련 문제