C#图像透明度调整的方法

 更新时间:2015年04月24日 11:36:59   作者:沧海一粟……  
这篇文章主要介绍了C#图像透明度调整的方法,涉及C#操作图像透明度的相关技巧,需要的朋友可以参考下

本文实例讲述了C#图像透明度调整的方法。分享给大家供大家参考。具体如下:

//定义图像透明度调整函数
public Bitmap PTransparentAdjust(Bitmap src,int num)
{
  try
  {
   int w = src.Width;
   int h = src.Height;
   Bitmap dstBitmap = new Bitmap(src.Width, src.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
   System.Drawing.Imaging.BitmapData srcData = src.LockBits(new Rectangle(0, 0, w, h), System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
   System.Drawing.Imaging.BitmapData dstData = dstBitmap.LockBits(new Rectangle(0, 0, w, h), System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
   unsafe
   {
     byte* pIn = (byte*)srcData.Scan0.ToPointer();
     byte* pOut = (byte*)dstData.Scan0.ToPointer();
     byte* p;
     int stride = srcData.Stride;
     int r, g, b;
     for (int y = 0; y < h; y++)
     {
     for (int x = 0; x < w; x++)
     {
       p = pIn;
       b = pIn[0];
       g = pIn[1];
       r = pIn[2];
       pOut[1] = (byte)g;
       pOut[2] = (byte)r;
       pOut[3] = (byte)num;
       pOut[0] = (byte)b;
       pIn += 4;
       pOut += 4;
     }
     pIn += srcData.Stride - w * 4;
     pOut += srcData.Stride - w * 4;
     }
     src.UnlockBits(srcData);
     dstBitmap.UnlockBits(dstData);
     return dstBitmap;
   }
  }
  catch (Exception e)
  {
   MessageBox.Show(e.Message.ToString());
   return null;
  }
}

原图:

效果图(50%):

希望本文所述对大家的C#程序设计有所帮助。

相关文章

  • C#二分查找算法

    C#二分查找算法

    这篇文章介绍了C#中的二分查找算法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C#中实现契约测试的方法

    C#中实现契约测试的方法

    这篇文章主要介绍了C#中实现契约测试,在本文中,我将揭开契约测试的神秘面纱,并向您展示如何在 C# 项目中实现它,需要的朋友可以参考下
    2023-09-09
  • 利用C#快速查出哪些QQ好友空间屏蔽了自己

    利用C#快速查出哪些QQ好友空间屏蔽了自己

    我们经常会遇到以下情况吧:想点击好友空间看看他最近的动态,结果发现自己需要申请权限!别担心,本文将为大家介绍如何利用C#快速查出哪些QQ好友空间屏蔽了自己,需要的可以参考一下
    2022-02-02
  • C#开源的AOP框架--KingAOP基础

    C#开源的AOP框架--KingAOP基础

    这篇文章主要介绍了一款C#开源的AOP框架--KingAOP框架的基础知识,对于想学习AOP的小伙伴来说,非常不错,希望大家能够喜欢。
    2015-12-12
  • C#/.Net 中快速批量给SQLite数据库插入测试数据

    C#/.Net 中快速批量给SQLite数据库插入测试数据

    这篇文章主要介绍了C#/.Net 中快速批量给SQLite数据库插入测试数据,本文直接给出实例代码,需要的朋友可以参考下
    2015-06-06
  • C#生成验证码图片的方法

    C#生成验证码图片的方法

    这篇文章主要为大家详细介绍了C#生成验证码图片的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • C#动态webservice调用接口

    C#动态webservice调用接口

    动态调用webservice,就可以不用添加web引用了,上线的话也只是需要改一下wsdl地址就可以了
    2015-05-05
  • C#计算字符串相似性的方法

    C#计算字符串相似性的方法

    这篇文章主要介绍了C#计算字符串相似性的方法,实例分析了C#计算字符串相似性的原理与算法实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • C#实现简单的文件加密与解密方式

    C#实现简单的文件加密与解密方式

    这篇文章主要介绍了C#实现简单的文件加密与解密方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • 将Qt项目升级到Qt6吐血经验总结

    将Qt项目升级到Qt6吐血经验总结

    很多朋友向小编反馈将Qt项目升级到Qt6频繁出错,该如何处理呢,今天小编给大家带来了将Qt项目升级到Qt6吐血经验总结,感兴趣的朋友一起看看吧
    2021-07-07

最新评论