我的数据库保存byte[]
了不同图像的数据,png
扩展bmp
工作正常,但奇怪的是,带有jpeg
扩展的图像似乎逆时针旋转了 90 度。我只能假设这是编码器和解码器的问题。jpegs
它们由 iPhone 编码,并在 silverlight 应用程序中使用以下代码进行解码:
using (MemoryStream ms = new MemoryStream(bImage, 0, bImage.Length))
{
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(ms);
img.Source = bitmapImage;
tempList.Add(img);
}
因为bmps
我使用以下内容:
ExtendedImage image = new ExtendedImage();
var bmp = new BmpDecoder();
var png = new PngEncoder();
try
{
bmp.Decode(image, new MemoryStream(bImage));
}
catch (NotSupportedException)
{
new MessageWindow("Incorrect image format", DisplayStrings.ErrorDisplay, MessageButtons.OK, MessageImage.Error).Show();
continue;
}
MemoryStream ms = new MemoryStream();
png.Encode(image, ms);
BitmapImage bi = new BitmapImage();
bi.SetSource(new MemoryStream(ms.ToArray()));
img.Source = bi;
tempList.Add(img);
这两个选项都不会以正确的方向显示图像。我是否缺少特定的 jpeg 解码器类?
编辑 事实证明,iPhone 对字节数组做了一些奇怪的事情。结果:在保存之前旋转 iPhone 上的图像显然对 iPhone 上的图像没有任何作用,而是将图像的正确方向上传到服务器上。为什么会发生这种情况是任何人的猜测,但事实就是如此。