如何在Windows Mobile下使用.NET Compact Framework画透明图片
Iphone之所以那么流行一部分归功于他的炫丽的界面,其实那些界面的实现主要由两大功能组成:画透明图片和画渐变效果。这次主要讲述windows mobile下画透明图片。
所谓透明图片其实就是把图片背景设置成透明,如果直接画出图片会显示一个规则正方形的图,其中图片包括不规则图形和该图像下的背景,所以如果只是想画出不规则图形,需要把背景去掉。下面为去掉背景的实现。
/// <summary>
/// Draws the image with transparency
/// </summary>
/// <param name="gx">Destination graphics</param>
/// <param name="image">The image to draw</param>
/// <param name="destRect">Desctination rectangle</param>
public static void DrawImageTransparent(this Graphics gx, Image image, Rectangle destRect)
{
ImageAttributes imageAttr = new ImageAttributes();
Color transpColor = GetTransparentColor(image);
imageAttr.SetColorKey(transpColor, transpColor);
gx.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, imageAttr);
imageAttr.Dispose();
}
private static Color GetTransparentColor(Image image)
{
return ((Bitmap)image).GetPixel(image.Width - 1, image.Height - 1);
}
先调用Bitmap.GetPixel()函数取出图片的背景信息,然后设置ImageAttributes 的属性,在画图的时候把图片属性传递到Graphics.DrawImage()函数进行绘画。
效果图如下:
有些图片做的不好,有点锯齿。
下面是没有去掉背景的图片,作为比较。
作者:Jake Lin(Jake's Blog on 博客园)
出处:http://procoder.cnblogs.com
本作品由Jake Lin创作,采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言。
出处:http://procoder.cnblogs.com
本作品由Jake Lin创作,采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架