Comprima e salve a imagem base64 no Windows Phone 8.1
Eu implementei a solução a seguir para compactar uma imagem de base 64 e recuperar a nova string de base 64. Funciona bem no Windows Phone 8.0, mas, direcionando-se ao Windows Phone 8.1, parece que há mudanças no ambiente.
oWriteableBitmap
não tem construtor para umBitmapImage
e aWriteableBitmap
não tem funçãoSaveJpeg
. Eu sei dissoSaveJpeg
é uma extensão, existe uma maneira de adicionar essa extensão ao Windows Phone 8.1? Ou existe alguma API que eu possa usar? O que preciso alterar para tornar este 8.1 compatível? Estou meio preso aqui: - /
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;
}