首页 > 编程语言 >C#:Bitmap类使用方法—第1讲

C#:Bitmap类使用方法—第1讲

时间:2024-08-17 13:57:34浏览次数:12  
标签:Int32 C# Image 指定 Bitmap 继承 像素 方法

首先看一下Bitmap定义:封装 GDI+ 位图,此位图由图形图像及其属性的像素数据组成。 Bitmap 是用于处理由像素数据定义的图像的对象。

下面介绍一下使用的例子:

Bitmap image1;

private void Button1_Click(System.Object sender, System.EventArgs e)
{

    try
    {
        // Retrieve the image.
        image1 = new Bitmap(@"C:\Documents and Settings\All Users\" 
            + @"Documents\My Music\music.bmp", true);

        int x, y;

        // Loop through the images pixels to reset color.
        for(x=0; x<image1.Width; x++)
        {
            for(y=0; y<image1.Height; y++)
            {
                Color pixelColor = image1.GetPixel(x, y);
                Color newColor = Color.FromArgb(pixelColor.R, 0, 0);
                image1.SetPixel(x, y, newColor);
            }
        }

        // Set the PictureBox to display the image.
        PictureBox1.Image = image1;

        // Display the pixel format in Label1.
        Label1.Text = "Pixel format: "+image1.PixelFormat.ToString();
    }
    catch(ArgumentException)
    {
        MessageBox.Show("There was an error." +
            "Check the path to the image file.");
    }
}

注释:

位图由图形图像的像素数据及其属性组成。 有许多标准格式可用于将位图保存到文件中。 GDI+ 支持以下文件格式:BMP、GIF、EXIF、JPG、PNG 和 TIFF。 有关支持的格式的详细信息,请参阅 位图的类型

可以使用其中一个 Bitmap 构造函数从文件、流和其他源创建图像,并使用 方法将它们保存到流或文件系统 Save 。 使用 DrawImage 对象的 方法 Graphics 将图像绘制到屏幕或内存中。 有关使用图像文件的主题列表,请参阅 使用图像、位图、图标和图元文件

构造函数:

Bitmap(Image)

从指定的现有图像初始化 Bitmap 类的新实例。

Bitmap(Image, Int32, Int32)

从指定的现有图像(缩放到指定大小)初始化 Bitmap 类的新实例。

Bitmap(Image, Size)

从指定的现有图像(缩放到指定大小)初始化 Bitmap 类的新实例。

Bitmap(Int32, Int32)

用指定的大小初始化 Bitmap 类的新实例。

Bitmap(Int32, Int32, Graphics)

用指定的大小和指定的 Graphics 对象的分辨率初始化 Bitmap 类的新实例。

Bitmap(Int32, Int32, Int32, PixelFormat, IntPtr)

用指定的大小、像素格式和像素数据初始化 Bitmap 类的新实例。

Bitmap(Int32, Int32, PixelFormat)

用指定的大小和格式初始化 Bitmap 类的新实例。

Bitmap(Stream)

从指定的数据流初始化 Bitmap 类的新实例。

Bitmap(Stream, Boolean)

从指定的数据流初始化 Bitmap 类的新实例。

Bitmap(String)

从指定的文件初始化 Bitmap 类的新实例。

Bitmap(String, Boolean)

从指定的文件初始化 Bitmap 类的新实例。

Bitmap(Type, String)

从指定的资源初始化 Bitmap 类的新实例。

属性:

Flags

获取该 Image 的像素数据的特性标志。

(继承自 Image)
FrameDimensionsList

获取 GUID 的数组,这些 GUID 表示此 Image 中帧的维数。

(继承自 Image)
Height

获取此 Image 的高度(以像素为单位)。

(继承自 Image)
HorizontalResolution

获取此 Image 的水平分辨率(以“像素/英寸”为单位)。

(继承自 Image)
Palette

获取或设置用于此 Image 的调色板。

(继承自 Image)
PhysicalDimension

获取此图像的宽度和高度。

(继承自 Image)
PixelFormat

获取此 Image 的像素格式。

(继承自 Image)
PropertyIdList

获取存储于该 Image 中的属性项的 ID。

(继承自 Image)
PropertyItems

获取存储于该 Image 中的所有属性项(元数据片)。

(继承自 Image)
RawFormat

获取此 Image 的文件格式。

(继承自 Image)
Size

获取此图像的宽度和高度(以像素为单位)。

(继承自 Image)
Tag

获取或设置提供有关图像的附加数据的对象。

(继承自 Image)
VerticalResolution

获取此 Image 的垂直分辨率(以“像素/英寸”为单位)。

(继承自 Image)
Width

获取此 Image 的宽度(以像素为单位)。

(继承自 Image)

方法:

Clone()

创建此 Image 的一个精确副本。

(继承自 Image)
Clone(Rectangle, PixelFormat)

创建此 Bitmap(它由 Rectangle 结构并使用指定的 PixelFormat 枚举定义)部分的副本。

Clone(RectangleF, PixelFormat)

创建此 Bitmap(用指定的 PixelFormat 枚举定义)部分的副本。

CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

(继承自 MarshalByRefObject)
Dispose()

释放此 Image 使用的所有资源。

(继承自 Image)
Dispose(Boolean)

释放由 Image 占用的非托管资源,还可以另外再释放托管资源。

(继承自 Image)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
FromHicon(IntPtr)

从图标的 Windows 图柄创建 Bitmap

FromResource(IntPtr, String)

从指定的 Windows 资源创建 Bitmap

GetBounds(GraphicsUnit)

以指定的单位获取图像的界限。

(继承自 Image)
GetEncoderParameterList(Guid)

返回有关指定的图像编码器所支持的参数的信息。

(继承自 Image)
GetFrameCount(FrameDimension)

返回指定维度的帧数。

(继承自 Image)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetHbitmap()

从此 Bitmap创建 GDI 位图对象。

GetHbitmap(Color)

从此 Bitmap创建 GDI 位图对象。

GetHicon()

返回图标的图柄。

GetLifetimeService()

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetPixel(Int32, Int32)

获取此 Bitmap 中指定像素的颜色。

GetPropertyItem(Int32)

从该 Image 获取指定的属性项。

(继承自 Image)
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr)

返回此 Image 的缩略图。

(继承自 Image)
GetType()

获取当前实例的 Type

(继承自 Object)
InitializeLifetimeService()

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
LockBits(Rectangle, ImageLockMode, PixelFormat)

将 Bitmap 锁定到系统内存中。

LockBits(Rectangle, ImageLockMode, PixelFormat, BitmapData)

将 Bitmap 锁定到系统内存中。

MakeTransparent()

让 Bitmap 的默认透明颜色为透明。

MakeTransparent(Color)

使指定的颜色对此 Bitmap 透明。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
RemovePropertyItem(Int32)

从该 Image 移除指定的属性项。

(继承自 Image)
RotateFlip(RotateFlipType)

旋转、翻转或者同时旋转和翻转 Image

(继承自 Image)
Save(Stream, ImageCodecInfo, EncoderParameters)

使用指定的编码器和图像编码器参数,将该图像保存到指定的流。

(继承自 Image)
Save(Stream, ImageFormat)

将此图像以指定的格式保存到指定的流中。

(继承自 Image)
Save(String)

将该 Image 保存到指定的文件或流。

(继承自 Image)
Save(String, ImageCodecInfo, EncoderParameters)

使用指定的编码器和图像编码器参数,将该 Image 保存到指定的文件。

(继承自 Image)
Save(String, ImageFormat)

将此 Image 以指定格式保存到指定文件。

(继承自 Image)
SaveAdd(EncoderParameters)

将帧添加到上次对 Save 方法调用时所指定的文件或流中。 使用此方法将多帧图像中的选定帧保存到另一个多帧图像。

(继承自 Image)
SaveAdd(Image, EncoderParameters)

将帧添加到上次对 Save 方法调用时所指定的文件或流中。

(继承自 Image)
SelectActiveFrame(FrameDimension, Int32)

选择由维度和索引指定的帧。

(继承自 Image)
SetPixel(Int32, Int32, Color)

在此 Bitmap 中设置指定像素的颜色。

SetPropertyItem(PropertyItem)

在此 Image 中存储一个属性项(元数据片)。

(继承自 Image)
SetResolution(Single, Single)

设置此 Bitmap 的分辨率。

ToString()

返回表示当前对象的字符串。

(继承自 Object)
UnlockBits(BitmapData)

从系统内存解锁此 Bitmap

上面就是BItmap的基础知识,下面会按照每个方法的如何使用,进行细致讲解。

标签:Int32,C#,Image,指定,Bitmap,继承,像素,方法
From: https://blog.csdn.net/m0_53104033/article/details/141095068

相关文章

  • Langchain pandas agent - Azure OpenAI account
    Langchainpandasagent结合AzureOpenAI账户使用时,主要涉及到通过AzureOpenAI提供的自然语言处理能力,来操作pandasDataFrame或进行相关的数据处理任务。以下是关于这一结合使用的详细解析:一、Langchainpandasagent概述在LangChain中,Agent是一个核心概念,它代表了......
  • ZYNQ SoC如何读取在Windows下配置的环境变量
    在解释ZYNQSoC如何读取在Windows下配置的环境变量之前,需要澄清一点:通常,ZYNQSoC或任何嵌入式系统并不直接在Windows操作系统下运行或配置环境变量。环境变量的配置通常是在嵌入式系统的开发阶段,在开发主机(可能是运行Windows的PC)上进行的,然后通过交叉编译、生成镜像文件等方......
  • 打卡信奥刷题(574)用Scratch图形化工具信奥B2090[普及组/提高] 年龄与疾病
    年龄与疾病题目描述某医院进行一项研究,想知道某项疾病是否与年龄有关。因此对以往的诊断记录进行整理,统计0-18、19-35、36-60、61及以上这四个年龄段的患者人数占总患者人数的比例。输入格式输入共2......
  • 一文搞定C语言文件常规I/O操作
    普通文件(OrdinaryFiles)普通文件,代指储存在硬盘中或外部媒体文件中的有序数据集。源文件(sourcefile),工程文件(objectfile),可执行文件(executablefile),乃至一组被处理的原始输入数据和输出结果均为普通文件。其中,源文件,工程文件等称之为程序文件,而对于输入输出的数据,则被......
  • 专题1:树莓派Pico引脚功能详解
    1主要功能RaspberryPiPico一共有40个针脚。这是RaspberryPiPico官方提供的引脚图,应该有很多人看到上面的图标都是两眼一摸黑,接下来,我将从每种颜色分类来讲述每个引脚的功能2Power类引脚Power,顾名思义就是电源的意思。这种引脚一共有三个,Power类引脚是为接到Pico上......
  • 在亚马逊云科技上部署开源大模型并利用RAG和LangChain开发生成式AI应用
    项目简介:小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWSAI最佳实践,并应用到自己的日常工作里。本次介绍的是如何在亚马逊云科技上利用SageMaker机器学习服务部署开源大模型,使用La......
  • win10如何清除缓存和垃圾,清理win10缓存和垃圾的方法
    在Windows10中清除缓存和垃圾文件,可以通过多种方法来实现,以下是一些常用的方法:一、使用Windows内置工具1.磁盘清理打开“此电脑”或“文件资源管理器”,右键单击要清理的驱动器(通常是C:驱动器)。选择“属性”并点击“磁盘清理”。选择要清理的文件类型,如临时文件、下载文件......
  • VSCode中解决python模块导入问题
    原因环境变量中不包含当前路径解决方法解决方法有很多种,包括在环境变量文件夹添加pth文件,在导入模块前使用动态添加当前模块的路径到环境变量中。这里介绍一种比较优雅的方案,修改VSCode配置文件在设置中选择“工作区”,搜索terminal.integrated.env在settings.json中编辑......
  • Elasticsearch(ES)(版本7.x)数据更新后刷新策略RefreshPolicy
    Elasticsearch(ES)(版本7.x)数据更新后刷新策略RefreshPolicy介绍ES数据写入后,默认1s后才会被搜索到(refresh_interval为1);这样可能是考虑到性能问题,毕竟实时IO消耗较多资源造成的问题例如一个索引现在有100个文档,当新增一个文档时,立即查询,显示数量为100,并不为101例如......
  • Cookie和Session的区别
    Cookie:Cookie是保存在客户端的一小块文本串的数据。客户端向服务器发起请求时,服务端会向客户端发送一个Cookie,客户端就把Cookie保存起来。在客户端下次向同一服务器再发起请求时,Cookie被携带发送到服务器。服务端可以根据这个Cookie判断用户的身份和状态。Session:Sessi......