C#图像处理之一 基本概念

本文是作者学习C#图像处理的笔记,主要介绍Bitmap对象和BitmapData属性,包括图像格式、图像数据及图像地址的概念。Bitmap.PixelFormat从Format24bppRgb开始,BitmapData提供Height、Width、Scan0和Stride等信息,Stride表示扫描行的字节数,并解释了如何通过指针操作高效访问图像像素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先声明,本系列笔记既“采菊东篱下”,又“悠然见南山”。是笔者在学习C#的图像处理的过程中借鉴、引申的笔录。欢迎访客指正。

(原文链接 http://ddbiz.com/?p=123)

概念要点:

 

1. 图像格式

为简单起见,笔者的学习是从 Bitmap.PixelFormat == PixelFormat.Format24bppRgb 开始的。因为这个图像格式采用的是24位色,每3个字节表示一个颜色,每字节分别对应R G B。

Bitmap 对象是对图像处理的一个非常方便的封装。如无特别说明,笔记中的所有图像处理,都为 Bitmap 且 Bitmap.PixelFormat=Format24bppRgb的格式。

 

2. 图像数据 - BitmapData

BitmapData是位图图像的属性封装,可以通过

BitmapData bmpdata = Bitmap.LockBits()来获得。

其相应的属性列表如下:

 

BitmapData.Height, 像素高度,或叫扫描行数

BitmapData.Width, 像素宽度,或叫一个扫描行中的像素数

BitmapData.Scan0, 像素数据的起始地址,当然也是位图数据中的第一行的开始。

BitmapData.Stride, 跨距宽度,或叫扫描宽度。MSDN的示意为: 跨距是单行像素(一个扫描行)的宽度,舍入为一个 4 字节的边界。如果跨距为正,则位图自顶向下。如果跨距为负,则位图颠倒。用程序员的语言表述,就是: Stride指一个扫描行占用的字节数。根据BMP格式的标准,Stride一定是4的倍数。比如一个 24x1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值