WPF的canva生成图片的背景是黑色而不是透明,怎么解决?

问题描述

wpf使用canvas生成图片的代码://生成pngpublicvoidConvertToPng(Canvascanvas){if(mFonts.Count.Equals(0))return;doubled=canvas.Height;RenderTargetBitmapbmp=newRenderTargetBitmap(100,100,96,96,PixelFormats.Default);bmp.Render(canvas);stringfile=@"E:Picturetest.png";stringExtension=System.IO.Path.GetExtension(file).ToLower();BitmapEncoderencoder=newJpegBitmapEncoder();encoder.Frames.Add(BitmapFrame.Create(bmp));using(Streamstm=File.Create(file)){encoder.Save(stm);}}生成的图片应该为透明的部分,为什么是黑色的,应该如何来使图片背景变为透明。

解决方案

解决方案二:

解决方案三:
首先根据文件路径获取到filestream,用file.open。将这个stream中的内容读取到某个byte数组中以后,关掉,免得一直占用文件。将这个byte转换成bitmap,是system.drawing中的bitmap,别搞错了,你需要手动添加这个引用。在.net引用里面找。使用bitmap.maketransparent将背景颜色去掉。将这个bitmap对象保存到某个memstream中,记得save的时候要选择png模式的图片,否则绝对是黑色背景。将这个memstream加载到image的source中,然后看你的透明背景图吧!
解决方案四:
检查你的JpegBitmapEncoder(),换wpf比较普通、通用的控件截取成图片方法。

时间: 2024-09-15 22:39:53

WPF的canva生成图片的背景是黑色而不是透明,怎么解决?的相关文章

Win10主题背景变成黑色的解决方法

  Win10系统自带的主题很多,在桌面上可以经常更新,让桌面赏心悦目.有用户发现,Win10系统桌面上的主题突然变成黑色,这不是大煞风景吗?如何解决呢? 我最初还以为是系统更新导致的,但通过几次更新后,问题依旧,在网上搜索也未找到解决办法.今天在一次无意间的更换主题时,竟然背景色不再是黑色的了,通过几次测试,终于找到了问题所在. Win10默认主题有3个,分别是"Windows"."线条和颜色"."鲜花".如果切换到"线条和颜色&qu

OpenCV加载PNG图片,显示图片背景是黑色的?

问题描述 OpenCV加载PNG图片,显示图片背景是黑色的? 如题,我用cvaddweighted将两张图片融合,想用一张png格式图片作为Logo添加水印,但是Logo位置背景是黑色的.是跟cvaddweighted中图像权值参数有关吗?还是需要其他方法实现? 解决方案 http://blog.sina.com.cn/s/blog_7cfb366d0101fhpq.html 解决方案二: 分割多通道数组成几个单通道数组或者从数组中提取一个通道cvAddWeighted( const CvArr

黑色背景-android5.0及以上版本的backgrounColor无效,都是透明色,也就是看到了背景的黑色

问题描述 android5.0及以上版本的backgrounColor无效,都是透明色,也就是看到了背景的黑色 titleBar是在xml里通过include标签添加进来的,背景色是白,但是在android5.0及以上版本中,背景色无效,都是透明的,求解! 解决方案 那就在他下面再放个有颜色的东西不就行了,比如textview

线程池-ImageLoader加载出来的PNG图像背景是黑色的?

问题描述 ImageLoader加载出来的PNG图像背景是黑色的? 我的ImageLoader的config: File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), "imageloader/Cache"); ImageLoaderConfiguration config = new ImageLoaderConfiguration .Builder(this) .memoryCacheEx

android-安卓图片上传生成缩略图,裁剪后背景为黑色。

问题描述 安卓图片上传生成缩略图,裁剪后背景为黑色. 用户在上传图片后图片可能会自定义,不一定为最大,如果为黑色的话,会影响用户体验. 请问我要如何做成透明的. 解决方案 http://zhidao.baidu.com/link?url=vqPoNNcVjXD2Lsb57JMZSuJd3gH8rfpJpr9iItIPZ7_PQ__8-rSho89hBSKpKCj--1e9x5S3oQpcc2zHXk1H-QaXFhA4BtI-X6GJdJxGeOK 解决方案二: 裁剪保存的时候注意压缩质量,最好

extjs做截图功能,加上jcrop插件后,背景是黑色,浏览出不来图片,不加插件,可以出来图片

问题描述 extjs做截图功能,加上jcrop插件后,背景是黑色,浏览出不来图片,不加插件,可以出来图片 就因为加上了jcrop插件之后,就这个样子了,就是浏览显示不出图片,也没报错,求大神帮忙 下面的代码, 解决方案 jcrop操作的对象并不是原始图片的了,另外生成了一个对象,你要用api来更改图片才行 jcrop_api变量申明为全局变量.img.setSrc(url)那句改为 jcrop_api.setImage(url)

vs2013 局部变量窗口-vs2013 局部变量窗口背景变为黑色

问题描述 vs2013 局部变量窗口背景变为黑色 有谁知道为什么我的vs2013 局部变量窗口会这样,全部是黑色的了,调试时候很不方便.急急急.谢谢. 解决方案 看图就懂了吧.工具-选项 然后找这个界面就看到了!项前景为字体颜色,项背为背景颜色!你的应该背景颜色是黑色! 解决方案二: 我的是这样的,没有什么不对的吧?

tabpageIndicator的背景是黑色的,怎么去掉?

问题描述 tabpageIndicator的背景是黑色的,怎么去掉? android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > android:layout_width="wrap_content" android:layout_height="wrap_co

android加载自定义dialog,背景总是黑色的。不知道为什么。求解答

问题描述 android加载自定义dialog,背景总是黑色的.不知道为什么.求解答 java代码: LayoutInflater inflater = LayoutInflater.from(getActivity()); View v1 = inflater.inflate(R.layout.progress_dialog_item, null);// 得到加载view RelativeLayout layout = (RelativeLayout) v1.findViewById(R.id