2
我已经实现了以下解决方案来压缩基本64位图像并取回新的base 64字符串。它在Windows Phone 8.0中运行良好,但是针对Windows Phone 8.1似乎环境中存在变化。在Windows Phone 8.1上压缩并保存base64图像
WriteableBitmap
没有构造函数为BitmapImage
和WriteableBitmap
没有功能SaveJpeg
。我知道SaveJpeg
是扩展名,有没有办法将此扩展名添加到Windows Phone 8.1?或者是否有我可以使用的任何API?为了使这个8.1兼容,我必须改变什么?我有点坚持在这里: -/
public static string Compress(String base64String, int compression)
{
String compressedImage;
byte[] imageBytes = Convert.FromBase64String(base64String);
MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(memoryStream.AsRandomAccessStream());
WriteableBitmap bmp = new WriteableBitmap(bitmapImage);
int height = bmp.PixelHeight;
int width = bmp.PixelWidth;
int orientation = 0;
int quality = 100 - compression;
MemoryStream targetStream = new MemoryStream();
bmp.SaveJpeg(targetStream, width, height, orientation, quality);
byte[] targetImage = targetStream.ToArray();
compressedImage = System.Convert.ToBase64String(targetImage);
return compressedImage;
}
,如果你不知道什么尺寸的时间提前? – 2014-11-24 14:56:43
@ JerryNixon-MSFT你的意思是你不知道你想要缩放图像的大小? – Romasz 2014-11-24 15:10:05
我的意思是,如果你使用base64编码,而你不知道在SetPixelData中设置的高度和宽度 – 2014-11-24 15:20:00