首页 > 编程语言 >【C#】Bitmap图像实现背景透明

【C#】Bitmap图像实现背景透明

时间:2024-08-28 08:56:20浏览次数:11  
标签:img C# demo Bitmap int 图像 alpha pixel

/// <summary>
/// 背景透明化
/// </summary>
/// <param name="img">原图</param>
/// <returns></returns>
public static Bitmap ConverImageBackTransparent(Bitmap img)
{
    Bitmap bg = new Bitmap(img.Width, img.Height);
    try
    {
        int alpha = 0;
        Color demo;
        Color pixel;
        for (int x = 0; x < img.Width; x++)
        {
            for (int y = 0; y < img.Height; y++)
            {
                demo = img.GetPixel(1, 1);
                pixel = img.GetPixel(x, y);
                int R = demo.R;
                int G = demo.G;
                int B = demo.B;
                int r1 = pixel.R;
                int g1 = pixel.G;
                int b1 = pixel.B;
                int a = 40;  //RGB误差范围
                if (Math.Abs(R - r1) < a && Math.Abs(G - g1) < a && Math.Abs(B - b1) < a)
                {
                    alpha = 0;  //RGB在色差范围内,透明度为0
                }
                else
                {
                    alpha = 255;
                }
                bg.SetPixel(x, y, Color.FromArgb(alpha, r1, g1, b1));
            }
        }
    }
    catch (Exception ex)
    {
        
    }
    return bg;
}

标签:img,C#,demo,Bitmap,int,图像,alpha,pixel
From: https://www.cnblogs.com/qiutian-hao/p/18383887

相关文章

  • 南沙C++陈老师讲题:1078:求分数序列和
    ​【题目描述】【输入】输入有一行,包含一个正整数n(n≤30)n(n≤30)。【输出】输出有一行,包含一个浮点数,表示分数序列前nn项的和,精确到小数点后44位。【输入样例】2【输出样例】3.5000#include<iostream>#include<stdio.h>usingnamespacestd;intmain()......
  • 使用Navicat导入
    启动小皮中的mysql服务和apache2、找到小皮的这个目录,在文件地址栏输入cmd,进入命令行 3、在命令行中输入完整命令:mysqldump-h192.168.0.156-uroot-pkucun>123.sql其中192.168.0.156是我的ip地址,root是用户名,kucun是我的数据库名。 4、回到文件,我们可......
  • C:回调函数的介绍-学习笔记
    前言:本篇文章我们将继续指针相关知识:回调函数希望大家在看完后能够有所收获!回调函数 定义与概念回调函数是一个通过指针调用的函数。如果把函数指针作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,被调用的函数就是回调函数,回调函数不是有该函数的实现方......
  • TypeScript 中的类型注解:代码的“说明书”
    ......
  • TypeScript 泛型:编写可复用代码的利器
    ......
  • 数据结构链表(C语言版)
    链表定义链表是一种常见的基础数据结构,它由一系列节点(Node)组成,每个节点包含数据域和指向列表中下一个节点的指针(在双向链表中还会有指向前一个节点的指针)。链表的一个优点是它允许有效地在序列中插入和删除元素。节点(Node)一个节点通常包含两个部分:数据域(DataField):存储实......
  • CSS调试 (1)
    https://www.bilibili.com/video/BV1KM4y1G7EF/内容转自【浏览器调试工具精讲】ChromeDevTools精讲,前端必看!     橙色:外边距蓝色:本体。 绿色:内边距。  CTRL+F可以搜索 输入某一个string或者css,section#someidxpath: //section/p  ......
  • 多线程四-Lock锁及其原理分析
    JUC是什么可能有些不太关注底层代码,会不太理解juc是啥,比如之前的我,只知道是跟并发相关。juc其实就是并发包路径的缩写,java.util.concurrent.而Lock是其中锁的接口,有比如重入锁,读锁,写锁等一些具体实现。这部分源码理解起来还是有些难度,暂时先理解其大概思路,对于实现有一个印象,比......
  • prescan中的Road Segment以及常见路面摩擦系数
    参考文章:轮胎摩擦系数-汽车之家(autohome.com.cn)一、点击Settings->Preferences->RoadSegments进入1、Road Segment参数描述单位Lanewidth车道的默认宽度。[m]Numberoflanes一个路段的默认车道数。[-]Asphalttype默认的沥青类型{标准的沥......
  • 捕获神经网络的精髓:深入探索PyTorch的torch.jit.trace方法
    标题:捕获神经网络的精髓:深入探索PyTorch的torch.jit.trace方法在深度学习领域,模型的部署和优化是至关重要的环节。PyTorch作为最受欢迎的深度学习框架之一,提供了多种工具来帮助开发者优化和部署模型。torch.jit.trace是PyTorch中用于模型追踪的一个重要方法,它能够将一个模......