C#将RGB图像格式数据转换为BITMAP和BITSOURCE对象

 1 public void RGBTOBITMAP(BYTE/*自定义的数据IntPtr*/ bits,int width/*图像的宽度*/,int height/*图像的高度*/)
 2 int widthStep = width*3; //一般默认步长为宽度的3倍
 3 int lenData = widthStep * height;//数据长度,24位图像数据的长度=宽度*高度*3
 4 int len = 0; //代表长度
 5 //bits图像帧数据
 6 byte[] buffer = new byte[len];//创建指定长度byte数据
 7 Marshal.Copy(bits, buffer, 0, buffer.Length);
 8
 9
10 /*****下面的就是将RGB数据转换为BITMAP对象******/
11 int stride = width * 3;
12 GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
13 int scan0 = (int)handle.AddrOfPinnedObject();
14 scan0 += (height - 1) * stride;
15 System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(width, height, -stride, System.Drawing.Imaging.PixelFormat.Format24bppRgb, (IntPtr)scan0);
16 handle.Free();
17 /********************************************/
18
19 /*****下面的代码是显示到wpf的Image控件上实时显示******/
20 IntPtr ip = bitmap.GetHbitmap();//从GDI+ Bitmap创建GDI位图对象
21
22 BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip, IntPtr.Zero, Int32Rect.Empty,
23 System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
24
25 image1.Source = bitmapSource;
26 /********************************************/
27 bitmap.Dispose(); //bitmap释放
28
29 /*使用DeleteObejct这个函数需要从gdi32.dll导入函数
30 [System.Runtime.InteropServices.DllImport("gdi32.dll")]
31         public static extern bool DeleteObject(IntPtr hObject);*/
32 DeleteObject(ip);

原文地址:https://www.cnblogs.com/cyymfm1314/p/9116193.html

时间: 2024-11-07 09:51:40

C#将RGB图像格式数据转换为BITMAP和BITSOURCE对象的相关文章

将Json数据转换为ADO.NET DataSet对象

Json数据转换为ADO.NET DataSet其实方法有很多,Newtonsoft.Json也提供了DataSet的Converter用以转换Json数据.但是有些情况下DataSet Converter并不管用,而且也不一定能够满足项目需要.这里介绍另一种简单有效的方法,能够方便快速地将Json数据转为ADO.NET DataSet. 设计 事实上Newtonsoft.Json已经提供了一套完整的Json数据文档结构,Newtonsoft.Json.Linq命名空间下提供了这种文档结构的对象

Android基础 -- Activity之间传递数据(bitmap和map对象)

原文:http://blog.csdn.net/xueerfei008/article/details/23046341 做项目的时候需要用到在2个activity之间传递一些数据,之前做的都是些字符串之类的东东,结果这次卡了好久,折腾了一个下午. 第一个:传递bitmap 这个问题非常奇葩(可能我android水平还不够),居然不会报错,我是直接用bundle或Intent的extral域直接存放bitmap,结果运行时各种宕机,各种界面乱窜(我非常的纳闷)...搜索之后看大家都说不能直接传递

从视频文件中读入数据-->将数据转换为灰度图-->对图像做candy边缘检测

//从视频文件中读入数据-->将数据转换为灰度图-->对图像做candy边缘检测 //作者:sandy //时间:2015-10-10 #include <cv.h> #include <highgui.h> int main(int argc, char *argv[]){ //预备工作 CvCapture* capture=cvCreateFileCapture("E:\\Videos\\xx.avi");//让capture变量指向视频文件 i

Android中View转换为Bitmap及getDrawingCache=null的解决方法

1.前言 Android中经常会遇到把View转换为Bitmap的情形,比如,对整个屏幕视图进行截屏并生成图片:Coverflow中需要把一页一页的view转换为Bitmap.以便实现复杂的图形效果(阴影.倒影效果等):再比如一些动态的实时View为便于观察和记录数据.需要临时生成静态的Bitmap. 2.实现方法 1)下面是笔者经常用的一个转换方法 public static Bitmap convertViewToBitmap(View view, int bitmapWidth, int

RGB图像数据字符叠加,图像压缩(ijl库),YUV转RGB

jackyhwei 发布于 2010-01-01 12:02 点击:3218次  来自:CSDN.NET 一些非常有用的图像格式转换及使用的源代码,包括RGB图像数据字符叠加,图像压缩(ijl库),YUV转RGB等等. TAG: YUV  YUV转RGB  RGB  BMP转JPG  文字叠加   /**************************************File: yuvrgb24.hDescription: header file for yuvrgb24.cDate:

从本地或者网络读取图片,并转换为Bitmap图片

在做android项目时,我们经常需要从本地或者网络读取图片,并转换为Bitmap图片,以便使用,下面是读取本地图片并转换的方法: Java代码   /** * 得到本地或者网络上的bitmap url - 网络或者本地图片的绝对路径,比如: * * A.网络路径: url="http://blog.foreverlove.us/girl2.png" ; * * B.本地路径:url="file://mnt/sdcard/photo/image.png"; * * 

Universal App图片文件和图片byte[]信息转换为bitmap

1. 打开图片文件并转换为BitmapImage类 首先要做的自然是打开一个图片文件了,可以使用FileOpenPicker来手动选择图片,总之能拿到一个StorageFile都行. //打开图片选择器,选择要发送的图片 var openPicker = new FileOpenPicker { ViewMode = PickerViewMode.Thumbnail, SuggestedStartLocation = PickerLocationId.PicturesLibrary }; ope

android 将图片通过base64转换为String 将图片String转换为Bitmap

1.Bitmap转换为图片字符串 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); //该方法用来压缩图片,第一个参数为图片格式,第二个参数为截取图片的保留率,如当前为90,则保留之前图片90%的区域 bitmap.compress(Bitmap

Python将JSON格式数据转换为SQL语句以便导入MySQL数据库

前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据,我们希望把这些数据导入到MySQL数据库中.phpMyadmin可以把MySQL数据库中的数据导出为JSON格式文件,但却不能把JSON格式文件导入到MySQL数据库.为了实现这个目标,可以编写Python脚本将JSON格式数据转换为SQL语句以便导入MySQL数据库. JSON文件tencent.json部分内容: {"recruitNumber": "1", "name&qu