首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Xamrin.Android加图像水印

Xamrin.Android加图像水印
EN

Stack Overflow用户
提问于 2017-08-19 17:38:29
回答 1查看 1.2K关注 0票数 0

如何使用Xamarin.Android c#添加另一个较小的图像作为较大图像的水印,并将输出(JPEG/JPG)图像保存到安卓设备的内部/外部存储中。

EN

回答 1

Stack Overflow用户

发布于 2017-08-19 20:06:21

使用Canvas.DrawBitmap,您可以在另一个可变Bitmap的基础上绘制一个BitmapBitmap.CompressAsync提供了允许保存流的重载(在本例中为FileStream )。

代码语言:javascript
运行
复制
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();

注意:Using语句被分解成较小的组,以便在我们完成这些语句时处理资源,以减少该进程的总内存消耗……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45774523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档