Komprimieren und speichern Sie das base64-Image unter Windows Phone 8.1

Ich habe die folgende Lösung implementiert, um ein Basis-64-Bild zu komprimieren und die neue Basis-64-Zeichenfolge zurückzugewinnen. In Windows Phone 8.0 funktioniert es einwandfrei, bei Windows Phone 8.1 scheint es jedoch Änderungen in der Umgebung zu geben.

DasWriteableBitmap hat keinen Konstruktor für einBitmapImage und derWriteableBitmap hat keine FunktionSaveJpeg. Ich weiß dasSaveJpeg ist eine Erweiterung, gibt es eine Möglichkeit, diese Erweiterung zu Windows Phone 8.1 hinzuzufügen? Oder gibt es eine API, die ich verwenden kann? Was muss ich ändern, um diese 8.1 kompatibel zu machen? Ich stecke hier irgendwie fest: - /

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;
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage