2017-08-19 4 views
0

Wie kann ich ein weiteres kleineres Bild als Wasserzeichen eines größeren Bildes mit Xamarin.Android C# hinzufügen und das Ausgabebild (JPEG/JPG) entweder im internen/externen Speicher eines Android-Geräts speichern.Xamrin.Android Bild hinzufügen Wasserzeichen

Antwort

0

Mit Canvas.DrawBitmap können Sie eine Bitmap auf einem anderen wandelbarBitmap ziehen. Bitmap.CompressAsync bietet eine Überladung, die das Streamen ermöglicht (in diesem Fall ein FileStream).

var filename = System.IO.Path.Combine(Environment.GetExternalStoragePublicDirectory(Environment.DirectoryDownloads).ToString(), "filename.png"); 

Bitmap newBitmap; 
using (var aBitmapToApplyWaterMarkTo = await BitmapFactory.DecodeResourceAsync(Resources, Resource.Drawable.Alexina)) 
using (var waterMarkBitmap = await BitmapFactory.DecodeResourceAsync(Resources, Resource.Drawable.watermark)) 
{ 
    newBitmap = aBitmapToApplyWaterMarkTo.Copy(aBitmapToApplyWaterMarkTo.GetConfig(), true); 
    using (var canvas = new Canvas(newBitmap)) 
    { 
     canvas.DrawBitmap(waterMarkBitmap, newBitmap.Width - 100, newBitmap.Height - 100, null); 
    } 
} 
using (var fileStream = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write)) 
{ 
    await newBitmap.CompressAsync(Bitmap.CompressFormat.Png, 100, fileStream); 
} 
newBitmap.Dispose(); 

Hinweis: Using Aussagen werden in kleinere Gruppen aufgeteilt Entsorgung von Ressourcen zu ermöglichen, wie wir mit ihnen fertig werden, um den Gesamtspeicherbedarf dieses Prozesses zu verringern ...

+0

Dank. Lass mich das probieren. – Bismarck

Verwandte Themen