0

SSRS が読み取れるように、イメージを SQL Server に保存しようとしています。保存する前に画像サイズを変更できるように、WriteableBitmap (および場合によっては JPEG?) に変換する必要があります。ただし、変換されたイメージを SQL Server から取得しようとすると、SSRS でまったくレンダリングされません。私は何を間違っていますか?

  byte[] m_Bytes = ReadToEnd(fileStream); //this works fine
  WriteableBitmap bmp1 = new WriteableBitmap(166, 166);
  bmp1.FromByteArray(m_Bytes);  //this works fine

  ExtendedImage image = bmp1.ToImage();
  MemoryStream stream = new MemoryStream();
  ImageTools.IO.Encoders.AddEncoder<JpegEncoder>();
  JpegEncoder encoder = new JpegEncoder();
  encoder.Encode(image, stream);

  BitmapImage img = new BitmapImage();
  img.SetSource(stream);
  WriteableBitmap bmp2 = new WriteableBitmap(img);


  byte[] buffer1 = bmp2.ToByteArray();
  CurrentOrder.CompanyImage = buffer1; //this does save a byte array but it will not render in SSRS.  If I set buffer1 to bmp1.ToByteArray() then it works fine but I am still unable to resize it using the resize method in WriteableEx without it not rendering in SSRS.

これは同じことの別の試みであり、どちらもレンダリングされません:

そして、これはより簡単で、どちらも機能しません:

byte[] m_Bytes = ReadToEnd(fileStream); 
WriteableBitmap bmp1 = new WriteableBitmap(166, 166); 
bmp1.FromByteArray(m_Bytes); 
WriteableBitmap resizedImage = bmp1.Resize(25, 25, WriteableBitmapExtensions.Interpolation.Bilinear); 
byte[] buffer1 = resizedImage.ToByteArray(); 
CurrentOrder.CompanyImage = buffer1;
4

1 に答える 1

1

あなたが望むのは、166x166(または25x25)のサイズを変更し、byte []としてエクスポートし、このバイト配列から画像をリロードすることですか?

で試してみBitmapImageませんか?

BitmapImage image = new BitmapImage();
image.SetSource(fileStream);

WriteableBitmap bitmap = new WriteableBitmap(image);
WriteableBitmap resizedBitmap = bitmap.Resize(25, 25, WriteableBitmapExtensions.Interpolation.Bilinear);

CurrentOrder.CompanyImage = resizedBitmap.ToByteArray();
于 2013-05-15T14:36:20.257 に答える