c#指针进行图像操作

提及.NET的指针操作,很多人并不是很了解,甚至还不知道有这么个东东

由于C#的指针操作属于unsafe操作,所以很多人对unsafe使用起来都很谨慎

其实所谓不安全代码,其实是不受控于CLR控制下的托管执行,相当于CLR领导下的部分区域自治,

当然CLR也不会去关心不安全代码的内存分配和回收

费话少说,先体验一下适当的指针操作带来的性能提升。

平时我们通过GDI+操作稍大点图片象素时,都会有一种濒临崩溃的感觉,我们转下用指针操作

1   Bitmap map = new Bitmap(path);
2   // 将图片位图区域进行锁定
3   BitmapData mapdata = map.LockBits(new Rectangle(0, 0, map.Width, map.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
4   unsafe
5   {
6       byte* pixpoint;
7       int newpoint;
8 
9       for (int i = 0; i < map.Width; i++)
10       {
11           for (int j = 0; j < map.Height; j++)
12           {
13               // 位图结构存在一个字节对齐问题。      
14               pixpoint = (byte*)mapdata.Scan0; +i * 3 + j * mapdata.Stride;
15               newpoint = (*pixpoint * 11 + *(pixpoint + 1) * 59 + *(pixpoint + 2) * 30) / 100;
16               *(pixpoint++) = (byte)newpoint;
17               *(pixpoint++) = (byte)newpoint;
18               *(pixpoint++) = (byte)newpoint;
19 
20               //  非指针操作
21               //  Color pxcl=map.GetPixel(i, j);
22               // map.SetPixel(i, j, (pxcl.R * 11 + pxcl.G * 59 + pxcl * 30) / 100);
23           }
24       }
25   }
26   // 将位图内存区域进行解锁
27   map.UnlockBits(mapdata);
28   map.Dispose();

时间: 2024-12-05 16:22:09

c#指针进行图像操作的相关文章

python基本图像操作

Python基本图像操作 使用python进行基本的图像操作与处理 前言: 与早期计算机视觉领域多数程序都是由 C/C++ 写就的情形不同.随着计算机硬件速度越来越快,研究者在考虑选择实现算法语言的时候会更多地考虑编写代码的效率和易用性,而不是像早年那样把算法的执行效率放在首位.这直接导致近年来越来越多的研究者选择 Python 来实现算法. 今天在计算机视觉领域,越来越多的研究者使用 Python 开展研究,所以有必要去学习一下十分易用的python在图像处理领域的使用,这篇博客将会介绍如何使

2014年10个最佳的PHP图像操作库_php基础

Thomas Boutell 以及众多的开发者创造了以GD图形库闻名的一个图形软件库,用于动态的图形计算. GD提供了对于诸如C, Perl, Python, PHP, OCaml等等诸多编程语言的支持. 除了生成HTML输出之外, 你还可以使用php以众多的像 PNG, JPEG, GIF, WBMP,以及 XPM这样的图形文件格式来创建和计算图形文件. 并且,php的使用还能让你可以直接向一个浏览器输出图像流. 为了做到这一点,你需要借助于GD库图像功能的使用来编译php. 在这篇文章中,你

十款最佳的PHP图像操作库英文官网链接及中文讲解(1)

Thomas Boutell 以及众多的开发者创造了以GD图形库闻名的一个图形软件库,用于动态的图形计算. GD提供了对于诸如C, Perl, Python, PHP, OCaml等等诸多编程语言的支持. 除了生成HTML输出之外, 你还可以使用php以众多的像 PNG, JPEG, GIF, WBMP,以及 XPM这样的图形文件格式来创建和计算图形文件. 并且,php的使用还能让你可以直接向一个浏览器输出图像流. 为了做到这一点,你需要借助于GD库图像功能的使用来编译php. 在这篇文章中,你

PHP图像操作教程:3D图、缩放、旋转、裁剪、添加水印

  图片操作在网站的应用相当广范,特别是现在互联网高度发达,很多内容都是以图片来显示,现在我们来讲讲用php来操作上传的图片,3D图片绘制.图片缩放.图片旋转.图片裁剪.图片添加水印. 1.利用php gd库的函数绘制3D扇形统计图 代码如下   <?php header("content-type","text/html;charset=utf-8"); /*扇形统计图*/ $image = imagecreatetruecolor(100, 100); /

Photoshop色阶调整图像操作5:从从容容补断口

为什么COLOR模式能够解决这个问题呢? 因为COLOR混合模式是用下层基色的亮度与上层混合色的色相和饱和度创建结果色.这样可以保留图像中的灰阶,并且对于给单色图像上色和给彩色图像着色都会非常有用. 也就是说,下层提高反差后色阶出现断口,然后用上层的色相和饱和度来弥补,但是在亮度上仍然保留了下层调整后的参数值.

opencv基本图像操作

// Basic_OpenCV_2.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include "cv.h" #include "highgui.h" using namespace std; void SmoothImage(IplImage* image)//平滑函数 { cvNamedWindow("Smooth_in");

photoshop图像操作之色阶调整

这张片子是一位同事在我院实验室拍的院长亲自做实验的镜头,片子拍成这个样子,交不了差了,找我来了--

Photoshop色阶调整图像操作1:清清楚楚黑白场

Photoshop色阶调整图像操作4:踏踏实实调图像

这张片子是一位同事在我院实验室拍的院长亲自做实验的镜头,片子拍成这个样子,交不了差了,找我来了--