图片的像素级处理
来源:互联网 发布:算法初步 编辑:程序博客网 时间:2024/05/15 10:00
可以通过使用TBitmapUtil类的一些方法对位图进行像素级的处理。包括:
void Begin(const TPoint& aPosition):设置当前要处理的像素位置,并锁定堆。
void End():解除对堆的锁定。
void SetPos(const TPoint& aPosition):改变当前像素位置至aPosition。
void IncXPos():将当前的X坐标自增1。
void DecXPos():将当前的X坐标自减1。
void IncYPos():将当前的Y坐标自增1。
void DecYPos():将当前的Y坐标自减1。
TUint32 GetPixel() const:获取当前像素的RGB值。
void SetPixel(TUint32 aValue):设置当前像素的RGB值。
下面我们通过将一个位图反转后写入另一张位图中的操作来说明TBitmapUtil类的使用方法。
利用前面已经生成并读取的位图:CFbsBitmap* iImage1和CFbsBitmap* iImage2。这里iImage2的长宽均大于iImage1,我们将iImage1反转装入iImage2中
首先关联要操作的位图:
TBitmapUtil bitmap1Util(iBitmap1);
TBitmapUtil bitmap2Util(iBitmap2);
接下来开始对位图操作,并设置初始点为(0,0):
bitmap1Util.Begin(TPoint(0,0));
bitmap2Util.Begin(TPoint(0,0));
下面从iBitmap1逐像素读取,并写入iBitmap2中:
TSize inSize = iBitmap1->SizeInPixels();
TInt xPos;
for (TInt yPos=0;yPos<inSize.iHeight;yPos++)
{
bitmap1Util.SetPos(TPoint(0,yPos));
bitmap2Util.SetPos(TPoint(yPos,0));
for (xPos=0;xPos<inSize.iWidth;xPos++)
{
bitmap2Util.SetPixel(bitmap1Util);
bitmap1Util.IncXPos();
bitmap2Util.IncYPos();
}
}
最后结束操作,清理堆栈
bitmap1Util.End();
bitmap2Util.End();
void Begin(const TPoint& aPosition):设置当前要处理的像素位置,并锁定堆。
void End():解除对堆的锁定。
void SetPos(const TPoint& aPosition):改变当前像素位置至aPosition。
void IncXPos():将当前的X坐标自增1。
void DecXPos():将当前的X坐标自减1。
void IncYPos():将当前的Y坐标自增1。
void DecYPos():将当前的Y坐标自减1。
TUint32 GetPixel() const:获取当前像素的RGB值。
void SetPixel(TUint32 aValue):设置当前像素的RGB值。
下面我们通过将一个位图反转后写入另一张位图中的操作来说明TBitmapUtil类的使用方法。
利用前面已经生成并读取的位图:CFbsBitmap* iImage1和CFbsBitmap* iImage2。这里iImage2的长宽均大于iImage1,我们将iImage1反转装入iImage2中
首先关联要操作的位图:
TBitmapUtil bitmap1Util(iBitmap1);
TBitmapUtil bitmap2Util(iBitmap2);
接下来开始对位图操作,并设置初始点为(0,0):
bitmap1Util.Begin(TPoint(0,0));
bitmap2Util.Begin(TPoint(0,0));
下面从iBitmap1逐像素读取,并写入iBitmap2中:
TSize inSize = iBitmap1->SizeInPixels();
TInt xPos;
for (TInt yPos=0;yPos<inSize.iHeight;yPos++)
{
bitmap1Util.SetPos(TPoint(0,yPos));
bitmap2Util.SetPos(TPoint(yPos,0));
for (xPos=0;xPos<inSize.iWidth;xPos++)
{
bitmap2Util.SetPixel(bitmap1Util);
bitmap1Util.IncXPos();
bitmap2Util.IncYPos();
}
}
最后结束操作,清理堆栈
bitmap1Util.End();
bitmap2Util.End();
这样,我们就完成了将iImage1反转并写入iImage2中的工作。
- 图片的像素级处理
- 图片的像素级处理
- 图片逐像素处理的速度比较
- java实现像素级图片文件处理
- ios图片像素处理流程
- python 处理图片像素点
- J2ME图片半透明处理(使用图片像素)
- Android图片特效处理(像素处理)
- Android图片特效处理(像素处理)
- 图片处理工具-局部像素替换
- 获取图片的像素值
- 获取图片的像素值
- 图片像素、大小的修改
- [VB.NET]求处理访问千万像素图片的读取,放大与缩小速度的思路~~~
- java 图片像素级操作
- mapData转化为ByteArray之后的像素级处理
- j2me中对图像的像素级处理
- 像素级的图像处理---opencv.2学习笔记1
- 用C编程计算某日期是一年中第几天
- 面试时,我说谎了……
- 基本绘图函数的使用
- 收藏至我的新浪
- 纵表转横表sql
- 图片的像素级处理
- 乏味的高中生活
- 工作中的酸甜苦辣
- sql分页存储过程
- 偶遇中的相识
- 内核态实现进程和端口关联
- 程序员创业成功必须遵守的几条铁律
- WEB专用服务器的安全设置
- 影响我的一件刻骨铭心的事