C# Bitmap.Clone 方法,提示内存不足 [问题点数:20分,结帖人linjf520]

一键查看最优答案

确认一键查看最优答案?
本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!
Bbs3
本版专家分:975
版主
结帖率 99.14%
Bbs9
本版专家分:70904
Bbs9
本版专家分:92581
Blank
进士 2012年 总版技术专家分年内排行榜第十
Blank
金牌 2012年3月 总版技术专家分月排行榜第一
Blank
微软MVP 2013年7月 荣获微软MVP称号
Blank
红花 2017年1月 .NET技术大版内专家分月排行榜第一
2016年11月 .NET技术大版内专家分月排行榜第一
2012年3月 .NET技术大版内专家分月排行榜第一
Bbs3
本版专家分:975
版主
Bbs1
本版专家分:8
Bbs1
本版专家分:47
WPF(C#)中BitmapBitmapImage相互转换
WPF的Image控件中需要添加source,有时候需要从<em>Bitmap</em>转到<em>Bitmap</em>Image;有时候需要从Image控件中提出图像,又需要从<em>Bitmap</em>Source转<em>Bitmap</em>.
c# BitMap类型,关于return 之前 如何先dispose
public static System.Drawing.Image CaptureImage() { 。。。。。 <em>Bitmap</em> bitmap = new <em>Bitmap</em>(width, height);
C# URL转为Bitmap
/// ///通过Url获取到<em>Bitmap</em> /// /// /// public static <em>Bitmap</em> GetPicture(string Url) { WebRequest webreq = WebRequest.Create(Url); WebResponse webres = webreq.GetResponse(); using (Stream stream = webres...
C# 克隆(Clone)中的深拷贝和浅拷贝
有时候在项目中需要得到一个对象在某个状态下的副本,为了避免重新创建一个对象再一一赋值,便可以使用克隆来处理,克隆分为浅拷贝和深拷贝。 浅拷贝对于值类型和String类型成员,浅拷贝会在副本中重新创建成员;对于引用类型,对象和副本对象引用同一个内存地址,当在对象或者副本对象修改引用成员后,引用类型的成员就发生变化。浅拷贝通过系统提供的System.I<em>Clone</em>able<em>方法</em>实现,新建类是继承IClon...
C#中的bitmap类的使用方法
封装 GDI+ 位图,此位图由图形图像及其特性的像素数据组成。 <em>Bitmap</em> 是用于处理由像素数据定义的图像的对象。 继承层次结构 System.Object    System.MarshalByRefObject     System.Drawing.Image       System.Drawing.<em>Bitmap</em> 命名空间:  S
C# 窗体bitmap执行处理图片内存不足
<em>Bitmap</em> originalImage =(<em>Bitmap</em>)<em>Bitmap</em>.FromFile(originalImagePath); int thumWidth = width;//缩略图的宽度 int
c#操作BitmapData
旧问题,以下记录。 首先Image与bytes的转换 private Byte[] Image2Bytes(string imagefilename) { System.IO.FileStream stream = new System.IO.FileStream(imagefilename, System.IO.FileMode.Op...
Bitmap.Clone提示内存不足的错误
在使用<em>Bitmap</em>进行图片操作时经常报出“<em>内存不足</em>”的错误,在不断调试中发现主要有一下几点可能导致这个错误: 1.使用Rectangle对象时超出了图像的大小范围。 2.在指定图像的颜色数据格式(PixelFormat)时,生成的颜色数据格式与原图的数据格式不一致也将导致这个错误的出现.比如一张JPG的图片,保存是使用PixelFormat.Format8bppIndexed就会出现这样的错误。 ...
C# Bitmap转Mat类型
/// &amp;lt;summary&amp;gt; /// bitmap 位图转为mat类型 /// &amp;lt;/summary&amp;gt; /// &amp;lt;param name=&quot;bitmap&quot;&amp;gt;&amp;lt;/param&amp;gt; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt; public Mat <em>Bitmap</em>2Mat(<em>Bitmap</em> bitm
c#.net Bitmap类的基本使用方法
c#.net <em>Bitmap</em>类的基本使用<em>方法</em>
C# Image.FromHbitmap() 内存不足
<em>Bitmap</em> b = new <em>Bitmap</em>(@"d:\bb.bmp"); //图像大小 800像素X 600像素 //需要对像素进行一些处理,所以用上面的代码 //如果照片循环处理次数过多后,就<em>提示</em><em>内存不足</em>。 for (int i = 0; i < 40000; i++) { pictureBox1.Image = Image.FromHbitmap(b.GetHbitmap()); //<em>提示</em><em>内存不足</em> } 谢谢各位前辈!
C#——new Bitmap与clone读取PNG图片的相关问题
在<em>C#</em>中可以使用new <em>Bitmap</em>和<em>Bitmap</em>.clone的<em>方法</em>来获取一个<em>Bitmap</em>的备份,这两者实际上是有很大差别的。代码如下:<em>Bitmap</em> src = new <em>Bitmap</em>(@&quot;C:\Users\Administrator\Desktop\樱花.png&quot;); <em>Bitmap</em> a = new <em>Bitmap</em>(src); <em>Bitmap</em>Data bg...
C# bitmap 加载大图片报内存不足
求助! Windows Xp Sp3 下 <em>C#</em> bitmap 加载一个 4M大小的 tif图片文件时报 System.OutOfMemoryException: <em>内存不足</em> Windows 7 就没事
c#图像处理入门(-bitmap类和图像像素值获取方法)
一.<em>Bitmap</em>类 <em>Bitmap</em>对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此<em>Bitmap</em>是用于处理由像素数据定义的图像的对象.该类的主要<em>方法</em>和属性如下: 1. GetPixel<em>方法</em>和SetPixel<em>方法</em>:获取和设置一个图像的指定像素的颜色. 2. PixelFormat属性:返回图像的像素格式. 3. Palette属性:获取和设置图像所使用的颜色调色板. ...
C#中的bitmap类和图像像素值获取方法
一.<em>Bitmap</em>类 <em>Bitmap</em>对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此<em>Bitmap</em>是用于处理由像素数据定义的图像的对象.该类的主要<em>方法</em>和属性如下: 1. GetPixel<em>方法</em>和SetPixel<em>方法</em>:获取和设置一个图像的指定像素的颜色. 2. PixelFormat属性:返回图像的像素格式. 3. Palette属性:获取和设置图像所使用的颜色调色板. ...
关于bitmap复制的效率问题
我有1个大的bitmap,我想复制他,以为要频繁的复制使用他,所以就要考虑效率的问题!!! 有没有什么好的<em>方法</em>么 1》DrawImage<em>方法</em>不行! //<em>Bitmap</em> tempbitmap = new
C# 修改 Bitmap 尺寸 避免内存溢出
public static <em>Bitmap</em> KiResizeImage(<em>Bitmap</em> bmp, int newW, int newH) { try { <em>Bitmap</em> b = new <em>Bitmap</em>(newW, newH); Graphics g = Graphics.FromImage(b); g.Inter
c# clone 使用
写了一个Matrix计算的类。使用到clone Matrix result=this.<em>Clone</em>() as Matrix; //错误为Matrix不包含<em>Clone</em>的定义,并且找不到可接受类型为“摄影测
bitmap引起的内存溢出OutOfMemory解决方案
一、问题描述: Android下的相机在独自使用时,拍照没有问题,通过我们的代码调用时,也正常,但是更换了不同厂商的平板,ROM由Android4.0变成了Android4.1后,拍照出现了OutOfMemory异常,程序中断退出。如何解决这个问题呢? 二、先看看我们之前所写的代码 1) 调用系统相机(没有怀疑这里出错,代码略) 2)显示图片 mImageView = (Image
将图像加载到 Bitmap 对象时出现内存不足的问题
I have a list view with a couple of image buttons on each row. When you click the list row, it launches a new activity. I have had to build my own tabs because of an issue with the camera layout. The activity that gets launched for result is a map. If I click on my button to launch the image preview (load an image off the SD card) the application returns from the activity back to the listview activity to the result handler to relaunch my new activity which is nothing more than an image widget. The image preview on the list view is being done with the cursor and ListAdapter. This makes it pretty simple, but I am not sure how I can put a resized image (I.e. Smaller bit size not pixel as the src for the image button on the fly. So I just resized the image that came off the phone camera. The issue is that I get an out of memory error when it tries to go back and re-launch the 2nd activity. Is there a way I can build the list adapter easily row by row, where I can resize on the fly (bit wise)? This would be preferable as I also need to make some changes to the properties of the widgets/elements in each row as I am unable to select a row with touch screen because of focus issue. (I can use roller ball.) I know I can do an out of band resize and save of my image, but that is not really what I want to do, but some sample code for that would be nice. As soon as I disabled the image on the list view it worked fine again. FYI: This is how I was doing it: String[] from = new String[] { DBHelper.KEY_BUSINESSNAME,DBHelper.KEY_ADDRESS,DBHelper.KEY_CITY,DBHelper.KEY_GPSLONG,DBHelper.KEY_GPSLAT,DBHelper.KEY_IMAGEFILENAME + ""}; int[] to = new int[] {R.id.businessname,R.id.address,R.id.city,R.id.gpslong,R.id.gpslat,R.id.imagefilename }; notes = new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to); setListAdapter(notes); Where R.id.imagefilename is a ButtonImage. Here is my LogCat: 01-25 05:05:49.877: ERROR/dalvikvm-heap(3896): 6291456-byte external allocation too large for this process. 01-25 05:05:49.877: ERROR/(3896): VM wont let us allocate 6291456 bytes 01-25 05:05:49.877: ERROR/AndroidRuntime(3896): Uncaught handler: thread main exiting due to uncaught exception 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): java.lang.OutOfMemoryError: bitmap size exceeds VM budget 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.graphics.<em>Bitmap</em>Factory.nativeDecodeStream(Native Method) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.graphics.<em>Bitmap</em>Factory.decodeStream(<em>Bitmap</em>Factory.java:304) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.graphics.<em>Bitmap</em>Factory.decodeFile(<em>Bitmap</em>Factory.java:149) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.graphics.<em>Bitmap</em>Factory.decodeFile(<em>Bitmap</em>Factory.java:174) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.graphics.drawable.Drawable.createFromPath(Drawable.java:729) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.ImageView.resolveUri(ImageView.java:484) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.ImageView.setImageURI(ImageView.java:281) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.SimpleCursorAdapter.setViewImage(SimpleCursorAdapter.java:183) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.SimpleCursorAdapter.bindView(SimpleCursorAdapter.java:129) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.CursorAdapter.getView(CursorAdapter.java:150) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.AbsListView.obtainView(AbsListView.java:1057) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.ListView.makeAndAddView(ListView.java:1616) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.ListView.fillSpecific(ListView.java:1177) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.ListView.layoutChildren(ListView.java:1454) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.AbsListView.onLayout(AbsListView.java:937) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.View.layout(View.java:5611) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1108) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.LinearLayout.onLayout(LinearLayout.java:922) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.View.layout(View.java:5611) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.FrameLayout.onLayout(FrameLayout.java:294) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.View.layout(View.java:5611) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:999) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.LinearLayout.onLayout(LinearLayout.java:920) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.View.layout(View.java:5611) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.FrameLayout.onLayout(FrameLayout.java:294) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.View.layout(View.java:5611) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.ViewRoot.performTraversals(ViewRoot.java:771) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.ViewRoot.handleMessage(ViewRoot.java:1103) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.os.Handler.dispatchMessage(Handler.java:88) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.os.Looper.loop(Looper.java:123) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at android.app.ActivityThread.main(ActivityThread.java:3742) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at java.lang.reflect.Method.invokeNative(Native Method) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at java.lang.reflect.Method.invoke(Method.java:515) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497) 01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at dalvik.system.NativeStart.main(Native Method) 01-25 05:10:01.127: ERROR/AndroidRuntime(3943): ERROR: thread attach failed I also have a new error when displaying an image: 01-25 22:13:18.594: DEBUG/skia(4204): xxxxxxxxxxx jpeg error 20 Improper call to JPEG library in state %d 01-25 22:13:18.604: INFO/System.out(4204): resolveUri failed on bad bitmap uri: 01-25 22:13:18.694: ERROR/dalvikvm-heap(4204): 6291456-byte external allocation too large for this process. 01-25 22:13:18.694: ERROR/(4204): VM won't let us allocate 6291456 bytes 01-25 22:13:18.694: DEBUG/skia(4204): xxxxxxxxxxxxxxxxxxxx allocPixelRef failed 转载于:https://stackoverflow.com/questions/477572/strange-out-of-memory-issue-while-loading-an-image-to-a-bitmap-object
clone()防止内存泄露
最近在复习课程到第三章时,在学习不变量时一个很重要的方面就是防止内存泄露。通常防止内存泄露有两种方式。其一,就是使数据都是不可变类型;其二,是进行防御式拷贝。    在这里提到了clone()<em>方法</em>是得到原实例的一个拷贝,内容完全一样。但在对其中一个实例进行操作时不会对里一个产生干扰。现在看一下java的具体实现。首先,使你自定义的类实现cloneable。在这里我编写的类名为studentpubl...
c# Bitmap save无法 覆盖原来文件
<em>Bitmap</em> bit = new <em>Bitmap</em>(url); bit.SetResolution(300, 300); bit.Save(url); bit.Dispose(); 这样写覆盖原来的文件
C#: 关于Clone()方法的介绍
谈谈浅复制与深复制的问题: 例如我有一个简单的类: class People { public int _age; public string _name; public People(int Age,string Name) {     _age = Age;     _name = Name; } } 常见的赋值语句,如: People Mi
Bitmap的使用习惯——及时释放Bitmap占用的内存
及时释放<em>Bitmap</em>占用的内存,避免OOM
c# Bitmap 资源释放
参考别人代码,写了一个截屏函数如下: public <em>Bitmap</em> GetFullScreen() { <em>Bitmap</em> mimage = new <em>Bitmap</em>(System.Windows.Forms.S
C#Bitmap类实现对图像操作的一些方法(转)
http://hi.baidu.com/donetsky/blog/item/e95ab635eb7af21090ef3984.html 导入以下两个包:      System.Drawing;      System.Drawing.Imaging; 建产对象:      <em>Bitmap</em> bm = new <em>Bitmap</em>("c:/1.bmp"); 缩放:
【OpenCV】看看clone和copyTo的源码
结论: clone代码: mat.inl.hpp 直接调用了copyTo函数,新建了一个临时变量m,返回赋值(地址的头+尺寸)给开发者定义的变量 inline Mat Mat::clone() const { Mat m; copyTo(m); return m; } copyTo代码: /** @brief Copies the matrix to...
C# 深拷贝 Bitmap对象示例
原理,采用二进制序列化将对象序列化为MemoryStream,再从MemoryStream反序列化为对象。 如下, public <em>Bitmap</em> Deep<em>Clone</em>(<em>Bitmap</em> bitmap) { <em>Bitmap</em> dst<em>Bitmap</em> = null; using (MemoryStream mStream = new Mem...
Mat clone/copy to / =
函数原型 Mat clone() const; void copyTo( OutputArray m ) const; void copyTo( OutputArray m, InputArray mask) const; copyTo()有重载, imge.clone()和imge.copyTo(result)这种情况,源码解释如下 inline Mat Mat::clone() c...
C# Bitmap转为Mat
<em>C#</em>语言下,官方好像没有提供直接的方式把<em>Bitmap</em>转为Mat,但是可以使用我的这个方式转变格式
C# 修改 Bitmap 尺寸 避免内存溢出
改图片画面大小: [code=&quot;c#&quot;] /// /// Resize图片 /// /// 原始<em>Bitmap</em> /// 新的宽度 /// 新的高度 /// 处理以后的<em>Bitmap</em> public static <em>Bitmap</em> KiRes...
“System.OutOfMemoryException”类型的未经处理的异常在 System.Drawing.dll 中发生
-
创建Bitmap提示内存不足
bitmap bit1=new bitmap(@"");------------------运行<em>提示</em>错误:<em>内存不足</em>。 图片大小:28.8M 尺寸: 21264*15480 水平/垂直分辨率: 600d
学习图像处理知识---c#Bitmap类和Graphics类
1.在NET 类<em>Bitmap</em>类中图像遍历。得到按点颜色 public Color GetPixel(int x, int y);按点设定颜色public void SetPixel(int x, int y, Color color);学习<em>Bitmap</em>类常用<em>方法</em>很重要。 这里感谢“yingzhaom”翻译用下名称说明<em>Bitmap</em>(Image)从指定的现有图像初始化 <em>Bitmap</em> 类的新实例。Bit...
C#窗体Bitmap.FromFile内存不足
大家帮我看看我写的这段代码 DirectoryInfo theFolder = new DirectoryInfo(@"C:\aa"); DirectoryInfo dirInfo = theFold
C#内存不足”错误解决方案
今天在做png压缩的时候,遇到了“<em>内存不足</em>”这个错误,是我在添加了Image创建之后发生的。                 FileStream files = new FileStream(filePaths[i], FileMode.Open);                 Image _img = Image.FromStream(files);                
Bitmap.Clone问题
程序的功能是点击pictureBox1中的图片,然后在pictureBox2中显示放大后的局部图像。 但是在多次点击后会出现<em>内存不足</em>异常。。 // 左键单击PictureBoxSource,放大图像
C#中,Image与Bitmap的区别?
<em>C#</em>中,Image与<em>Bitmap</em>的区别? 1、<em>C#</em>中,Image为源自 <em>Bitmap</em> 和 Metafile 的类提供功能的抽象基类,也就是不能使用Image myImage=new Image();创
C#获取Bitmap图中的裸数据
m_image = e.GrabResult.To<em>Bitmap</em>(true); <em>Bitmap</em>Data bmpData = m_image.LockBits(new Rectangle(0, 0, m_image.Width, m_image.Height), ImageLockMode.ReadOnly, m_image.PixelFormat); IntPtr p = bmpData.Scan
C#数字图像处理的3种方法
本文主要通过彩色图象灰度化来介绍<em>C#</em>处理数字图像的3种<em>方法</em>,<em>Bitmap</em>类、<em>Bitmap</em>Data类和Graphics类是<em>C#</em>处理图像的的3个重要的类。 <em>Bitmap</em>只要用于处理由像素数据定义的图像的对象,主要<em>方法</em>和属性如下: GetPixel<em>方法</em>和SetPixel<em>方法</em>,获取和设置一个图像的指定像素的颜色。 PixelFormat属性,返回图像的像素格...
Bitmap赋值和拷贝的区别
<em>Bitmap</em> detecImage = (<em>Bitmap</em>)image.<em>Clone</em>(); <em>Bitmap</em> detecImage = image; 请问2者有什么区别,做图片处理用的,不知道有什么不同。。。请
绘制用纹理填充的图形,C#源代码Bitmap bitmap = new Bitmap("..\\..\\test.jpg");
绘制用纹理填充的图形,<em>C#</em>源代码<em>Bitmap</em> bitmap = new <em>Bitmap</em>("..\\..\\test.jpg"); TextureBrush tBrush = new TextureBru
C# bitmap转换bitmapsource
<em>方法</em>1: System.Drawing.<em>Bitmap</em> bmp = new System.Drawing.<em>Bitmap</em>(image); IntPtr h<em>Bitmap</em> = bmp.GetHbitmap(); System.Windows.Media.ImageSource Wpf<em>Bitmap</em> = Syste
Winform 内存不足
Winform <em>内存不足</em> Winform,我给PictureBox 赋值 picBox_One.BackgroundImage = Image.FromFile("图片");     总共8个PictureBox,初始化的时候8个都有图片显示,根据我的图片总数,可以点击下一页或上一页来重新给PictureBox赋值,但是每点击一次,就是重新给PictureBox背景图片换一次,内存就会多占用一
C# Bitmap类型与Byte[]类型相互转化
其实图片上传时使用文件控件最为方便,但如何考虑到数据库存储等,可以可虑转换为字节流。<em>Bitmap</em>   =&amp;gt;   byte[] <em>Bitmap</em> b = new <em>Bitmap</em>( &quot;test.bmp &quot;); MemoryStream ms = new MemoryStream(); b.Save(ms,System.Drawing.Imaging.ImageF...
C#处理图片内存不足
public static void MakeThumNail(string originalImagePath,string thumNailPath,int width, int height,
c# bitmap保存图片的问题
怎么在保存的同时对图片的标题、主题和备注等属性写入信息? 如果 bitmap 本身没这个功能,又应该使用什么<em>方法</em>?
c# Bitmap位图区域被锁定
定义了一个全局变量 <em>Bitmap</em> cur<em>Bitmap</em>=Null cur<em>Bitmap</em> = new <em>Bitmap</em>(imageBox.Image.<em>Bitmap</em>); //位图赋值 然后写了一个函数 public void Vehiclecolor(<em>Bitmap</em> cur<em>Bitmap</em>, int iw, int ih) 在里面想调用蓝通道像素值 int greyB = (cur<em>Bitmap</em>.GetPixel(i, j).B); 但是出现位图区域被锁的情况,在System.Drawing.dll中 可是cur<em>Bitmap</em>都还未被任何一个进程使用,怎么会被锁?
c#圖像處理入門(-bitmap類和圖像像素值獲取方法)
http://blog.csdn.net/dz45693/article/details/7725458 一.<em>Bitmap</em>類 <em>Bitmap</em>對象封裝了GDI+中的一個位圖,此位圖由圖形圖像及其屬性的像素數據組成.因此<em>Bitmap</em>是用於處理由像素數據定義的圖像的對象.該類的主要<em>方法</em>和屬性如下: 1. GetPixel<em>方法</em>和SetPixel<em>方法</em>:獲取和設置一個圖像的指定像素的顏色.
C# 图像处理:Bitmap 与 Image 之间的转换
Image img = this.pictureBox1.Image; <em>Bitmap</em> map = new <em>Bitmap</em>(img);   Image img = <em>Bitmap</em>;         Image和<em>Bitmap</em>类概述GDI+的Image类封装了对BMP、GIF、JPEG、PNG、TIFF、WMF(Windows元文件)和EMF(增强WMF)图像文件的调入、格式转换以及...
c#Bitmap类和Graphics类
<em>C#</em>中的<em>Bitmap</em>类和Graphics类比较输出,对比相同和不同点
C#/WPF】BitmapBitmapImage、ImageSource 、byte[]转换问题
<em>C#</em>/WPF项目中,用到图像相关的功能时,涉及到多种图像数据类型的相互转换问题,这里做了个整理。包含的内容如下: <em>Bitmap</em>和<em>Bitmap</em>Image相互转换。 RenderTarget<em>Bitmap</em> –&amp;gt; <em>Bitmap</em>Image ImageSource –&amp;gt; <em>Bitmap</em> <em>Bitmap</em>Image和byte[]相互转换。 byte[] –&amp;gt; <em>Bitmap</em> StackOver...
学习图像处理知识---c#Bitmap类和Graphics类(二)
鉴于上篇理论描写,此篇用于应用其主要函数。1.绘图函数用很多:  大多采用点到线到外形绘制             Graphics g1 = Graphics.FromImage(scr);            Point[] poita = new Point[] { new Point(20, 20), new Point(60, 30),  new Point(90, 130), new...
C#Bitmap保存一直提示GDI中发生一般性错误
-
c# Bitmap byte[]互转
c# <em>Bitmap</em>转byte[] 转自:http://www.cnblogs.com/liuxinls/p/3365276.html public static byte[] <em>Bitmap</em>2Byte(<em>Bitmap</em> bitmap) { using (MemoryStream stream = new MemoryStream()) { bitmap.Save(stream , Ima
C# bitmap转换为字节流
<em>C#</em> bitmap转换为字节流
C# Bitmap 缩放拉伸
对<em>Bitmap</em>对象的一些缩放拉伸的<em>方法</em>1.<em>Bitmap</em> map = new (image, width, height); 2.using(Griphics gra = Griphics.FromImage(map)) { gra.DrawImage(<em>Bitmap</em>Screen, new Rectangle(_drawingRect.X, _drawin
VS2010中创建C#的位图(BitMap)的方法与步骤
<em>C#</em>位图与图标的制作<em>方法</em>:1.<em>方法</em>1:右击项目创建位图: ①右击项目名称,从弹出的右键菜单中,选择“添加(D)”,选择“资源字典(R)…; ②在弹出的窗口中找到位图文件,并在下面添加位图名称,点击添加完成位图的添加。 2.<em>方法</em>2:右击文件创建位图: ①右击文件Pics,从弹出的右键菜单中,选择“添加(D)”,选择“资源字典(R)…; ②在弹出的窗口中找到位图文件,并在下面添加位图名称,点击
使用C#BitmapData
使用<em>C#</em>的<em>Bitmap</em>Data 最近要转开发平台,正研究<em>C#</em>。<em>C#</em>好是好,不过处理图片时一个像素一个像素的操作像素不是一般的慢。其实Delphi也一样,但好在Delphi的Bit
C#Bitmap.LockBits 使用说明
本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。 翻译 英语 <em>Bitmap</em>.LockBits <em>方法</em> (Rectangle, ImageLockMode, PixelFormat) .NET Framework (current version) 其他版本
C# 关于画图Graphics Bitmap image
关于GDI+ 的使用,就对点,线,面的画的操作,图像剪裁,缩放等等操作,了解各种常用的<em>方法</em>和属性。常用命名空间:System.Drawing;System.Drawing.Image;System.Drawing.Drawing2D;Graphics类封装了一个GDI+绘图图面,提供将对象绘制到显示到设备的<em>方法</em>。Graphics叫画板,只不过这个画板中带了很多工具。但画图时你要定义画板的大小,颜色等
C# byte数组转化位Bitmap
转自:浅析<em>C#</em>byte数组转化成图像的实现 <em>C#</em> byte数组转换为8bit灰度图像的问题类似的文章在网上可以看到不少,但多多少少都存在一些问题。这两天做实验室的项目用到这个功能,我从头把它整理了一遍。在看代码之前,首先解释几个问题。 1、byte数组存放的是图像每个像素的灰度值,byte类型正好是从0~255,存放8bit灰度图像的时候,一个数组元素就是一个像素的灰度值。仅有这个数组还不
C#中CopyTo()和Clone()的区别
有很多初学者会对CopyTo()和<em>Clone</em>()的区别弄不清楚.在网上搜索一下,大多数解说的程序员都把问题引到浅拷贝和深拷贝的区别上去了,关于浅拷贝和深拷贝确实解释的很清楚,可是这并没有让初学者减轻疑惑.所以特此写点东西,解释下这两个<em>方法</em>的共同点和区别,同时解释下浅拷贝和深拷贝. 相信大多数<em>C#</em>程序员都有查阅MSDN的好习惯,但是MSDN中提到这两个<em>方法</em>最大的区别就是:一个<em>方法</em>创建了一个新A
如何把一个Bitmap,复制到另一个Bitmap
如下: C<em>Bitmap</em> bitmapOne, bitmapTwo; 现在bitmapOne是已经有了图像,意思就是说bitmapOne已经有了内容。 我想把bitmapOne在内存中做个备份,把它复制
C#图像处理——2(使用Bitmap类进行图片裁剪)
<em>C#</em> 使用<em>Bitmap</em>类进行图片裁剪    在Mapwin(手机游戏地图编辑器)生成的地图txt文件中添加自己需要处理的数据后转换成可在手机(Ophone)开发环境中使用的字节流地图文件的小工具,其中就涉及到图片的裁剪和生成了。有以下几种方式。   <em>方法</em>一:拷贝像素。   当然这种<em>方法</em>是最笨的,效率也就低了些。 在<em>Bitmap</em>类中我们可以看到这样两个<em>方法</em>:GetPixel(int x
Bitmap的复制和注意
<em>Bitmap</em>是不能通过“ A = B ”来传递的,这样只是把B的引用给了A而已 之前做截图的时候就遇到过这个问题,但是没注意,想把截图获得的bitmap给ImageView显示,然后回收。发现报错后,就用“ = ”的<em>方法</em>新建了个A,同时回收B。发现还是报错,然后才想起来这个知识点。那么通过什么<em>方法</em>能够把<em>Bitmap</em>给复制过去呢? ps:这里也说一下,不要把<em>Bitmap</em>像我上面那样给ImageVi
避免出现bitmap内存限制OUT OF MEMORY的一种方法
在编写Android程序的时候,我们总是难免会碰到OOM(OUT OF MEMORY)的错误,那么这个错误究竟是怎么来的呢,可以先看一下这篇文章ANDROID BITMAP内存限制OOM,OUT OF MEMORY。   这里,我使用Gallery来举例,在模拟器中,不会出现OOM错误,但是,一旦把程序运行到真机里,图片文件一多,必然会出现OOM,我们通过做一些额外的处理来避免。 1.创建一...
C#遍历bmp图片各像素点时使用的GetPixel和内存方法计算结果有差异
遍历一张40X40的bmp图片的像素点,使用GetPixel遍历出的像素点数组长度是1600个,而使用内存<em>方法</em>数组长度却变成2809个,本人菜鸟一只,内存<em>方法</em>是参考别人的。希望大神答疑。GetPixel效率太低。 这是GetPixel<em>方法</em> public List getcolor(string codes) { Jiami jm = new Jiami(); List listbyt = new List(); string code = jm.Encrypt(codes, "88888888"); string txt = "http://www" + code; for (int i = 0; i < 40; i++) { for (int j = 0; j < 40; j++) { Color color = new <em>Bitmap</em>(GenByZXingNet(txt)).GetPixel(i, j); if (color.R == 255) { listbyt.Add(0); } else { if (color.R == 0) { listbyt.Add(1); } else { if (0 < color.R && color.R < 255) { listbyt.Add(0); } } } } } int1 = 1; return listbyt; } 如下使用的内存法: public List getcolor(string codes) { int d = 0; string c = string.Empty; List listbyt = new List(); Jiami jm = new Jiami(); string code = jm.Encrypt(codes, "88888888"); string txt = "http://www" + code; <em>Bitmap</em> b = new <em>Bitmap</em>(ConvertTo1Bpp2(GenByZXingNet(txt))); <em>Bitmap</em>Data bmData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); int stride = bmData.Stride; System.IntPtr Scan0 = bmData.Scan0; unsafe { byte* ptr = (byte*)(bmData.Scan0); for (int i = 0; i < bmData.Height; i++) { for (int j = 0; j < bmData.Width; j++) { byte blue = ptr[0]; if (blue == 0) { listbyt.Add(1); } else { listbyt.Add(0); } ptr += 3; } ptr += bmData.Stride - bmData.Width * 3; } } b.UnlockBits(bmData); int1 = 1; return listbyt; }
C# Clone() 方法
<em>Clone</em> 分浅拷贝和深拷贝 两者的区别:当有引用类型成员时,浅拷贝复制的是成员的引用,深拷贝复制的是成员对象。 如何实现对象的拷贝功能: == 继承接口I<em>Clone</em>able实现<em>Clone</em><em>方法</em> == I<em>Clone</em>able.<em>Clone</em>本身并不能区分(Deep or Shallow)你可以在<em>Clone</em>中调用Memberwise<em>Clone</em>来实现一个Shallow<em>Clone</em>也可以自己来实现一个
Gdiplus::BitmapClone的奇怪问题
我发现Gdiplus::<em>Bitmap</em>中<em>Clone</em>有奇怪的问题,当源来自于工程的resource,就<em>Clone</em>不成功;当源来自于某个dll,就<em>Clone</em>成功。很奇怪。下面给出简短代码 /////////
Bitmap循环加载图片出现内存不足解决办法
循环加载图片的时候报错“<em>内存不足</em>”,解决办法,下面是我的个人实例: 原来的写法(会报“<em>内存不足</em>”): private void aviSaveAs() { try { OleDbConnection conn = bc.GetConn(); conn.
Bitmap 读取图片如何内存释放
<em>Bitmap</em>* m_pImage; m_pImage= <em>Bitmap</em>::FromFile(strPathName,FALSE); 像这样读取的图片如何释放内存,求指教
C#线程中Image.FromFile()处提示内存不足
我在一个窗体的Load事件中创建了一个线程,在线程中用while循环判断一个文件夹下是否存在特定名称的三张jpg图片,当这三张图片出现时将它们显示在窗体的三个pictureBox中。线程如下: pri
C#中Image.FromFile(string path)函数报内存不足错误解决方法
在<em>C#</em>中使用Image.FromFile(string path)<em>方法</em>经常会报<em>内存不足</em>的错误,需要在使用后及时进行资源释放才能有效缓解该部分内存问题。 System.Drawing.Image img = System.Drawing.Image.FromFile(path); ...... ...... img.Dispose(); 希望可以帮到大家^_^
C# 图片处理之:旋转图片任意角度
拍摄的数码相片偶尔也有拍歪的时候。没关系,我们还是可以用<em>C#</em>来处理图片。     ///         /// 任意角度旋转        ///         /// 原始图<em>Bitmap</em>        /// 旋转角度        /// 背景色        /// 输出<em>Bitmap</em>        public static <em>Bitmap</em> KiRotate(<em>Bitmap</em> bmp,
【坑爹的c#】用bitmap和picturebox实现多张png的透明叠加
问题的产生:多个picturebox重叠时,上面的picturebox即使设置transparent,但是透出来的也是form的底色,而不是透出下面那个picturebox的图案。摔!解决的<em>方法</em>: 将多张png绘在同一个bitmap上,再显示在一个picturebox里。奇怪的是,网上的教程都有个去透明色的语句,我没有用,却也可以成功。bm:大家的图都绘在bm上btm:每次要绘的图类变量:(e.g
c# Bitmap 生成图片并添加边框
c# 生成图片 加 添加边框 主要是在生成图片上面加边框,可以自定义背景等
C#如何创建内存位图
请教各位高手:我想在通过SendMessage( hWnd, WM_PAINTCLIENT, (WPARAM)dc, 0L );这个函数向窗体发送一个消息,将窗体的设备DC输出到内存上变成位图,但是前
C# Bitmap.Save 导出低质量图怎么弄?
我的代码如下: Rectangle cutRect = row; <em>Bitmap</em> cut<em>Bitmap</em> = pic.<em>Clone</em>(cutRect, pic.PixelFormat); Graphics g
C# Bitmap() win7 出现GDI+ 中发生一般性错误 100分现在等
在win7和server 2008 下出现的, server2003 可以正常运行。xp还没有检验过。 有信息说可能是win7下的显卡驱动问题,连接: https://social.msdn.micr
[求助帖]C#图像处理Bitmap会自动压缩图片吗?
为什么导入大小为5.93 MB、位深度为24位、分辨率为1920*1080的bmp格式图片,导出的bmp格式图片分辨率不变,位深度增加到了32位,内存反而只有2.64 MB了呢?换一张图片导出的内存又
c#程序获取bitmapimage时,会卡顿大约6s。怎么解决啊大神们
大概在return 那边卡住几秒,而且只卡住一次,过了一次就好了,如果关掉重开还是会再卡一次 public bitmapimage getimg(string filrpath){ // Read b
C# DrawToBitmap的使用
如果我想截取一个panel中展示的背景图像,但是这个panel有滚动条,滚动条之外的图像无法使用panel.DrawTo<em>Bitmap</em>(,)的<em>方法</em>获取到,用什么办法才能获取panel中完整的图像呢?
C# 一个把PDF页转换成Bitmap后保存到本地bmp图片的程序,执行多次后,写入速度变慢
<em>C#</em>下调用Acrobat的组件,for循环一直从PDF文件中取出一页转换成<em>Bitmap</em>最后保存到本地图片。 刚开始能够保持每秒8到9张的速度,每张图片8M左右。保持到2000多张的时候,每秒大概只能保
c# GDI+ Image.Save()或者Bitmap.Save()方法保存高质量图片
GDI+保存质量比较高的图片的<em>方法</em>,使用Image或者<em>Bitmap</em>的Save<em>方法</em>调节图像保存的质量。 Image.Save<em>方法</em>共有五种重载  其中Save(String, ImageCodecInfo, EncoderParameters)和Save(Stream, ImageCodecInfo,EncoderParameters)这两种<em>方法</em>课以调节图像质量。 Save.
C# 切割图片 bitmap
private void button1_Click(object sender, EventArgs e) { <em>Bitmap</em> [] heheda=get_bim(); int num=int.Parse(textBox1.Text); pictureBox2.Image=heheda[num];
C#Bitmap类的快速访问
以下类封装了用于快速读写<em>Bitmap</em>的<em>方法</em>,主要用了Lockbits<em>方法</em>。 public class Lock<em>Bitmap</em> { <em>Bitmap</em> source = null; IntPtr Iptr = IntPtr.Zero; <em>Bitmap</em>Data bitmapData = null; public byte[] Pixels { get; set; } publ
C#Bitmap转换成byte[],可以传给C++处理,与Opencv通信。
c#代码: public static byte[] GetImagePixel(<em>Bitmap</em> Source) { byte[] result; int iWidth = Source.Width; int iHeight = Source.Height; Rectangle rect
C#中怎样实现在内存DC,以避免绘图时的闪烁?
Visual C++ 中为了避免绘图时的闪烁,可以创建一个内存兼容DC,现在内存里面画图,画完了再用BitBlt()函数把图形绘制到实际的窗口DC中。请问C#中怎么实现内存DC?是不是一定要通过调用W
c# Bitmap载入图片后图片不能载入问题
我用<em>Bitmap</em> Bbmp = new <em>Bitmap</em>(@"bmp.bmp");载入图片,当处理完毕以后, 需要更新图片,结果不能更新,发现资源一直在被使用。应该怎么办。
C# 简易画板
一眨眼2012就来了,真是时光飞逝~~由于工作需要,那就以这篇画板为2012的开篇吧   关于画板这个东西,而且是简易画板,网上搜一下也是一箩筐一箩筐的,有些做得很不错,但那已经超出简易级别了:)属于简易级别的却没找到自己中意的 后来综合了几篇简易画板+自己的idea,造就了本Demo。闲话不多说,先上图   代码 using System; using System.Coll
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
C语言程序设计入门(加强了基础方面的知识,加强了指针和数组方面的内容)下载
C语言入门,更适合大学初学者的学习。对C语言的各个知识点都有讲解,而且加强了对指针和数组方面的内容。 相关下载链接:[url=//download.csdn.net/download/cheng84977cc/2762968?utm_source=bbsseo]//download.csdn.net/download/cheng84977cc/2762968?utm_source=bbsseo[/url]
autocad dwg文件版本转换下载
可以把autocad 的dwg、dxf文件在R12到autocad2010各个版本之间进行转换,既是说在您的电脑中只需安装一个版本的autocad就能把各个版本的cad图形打开。 相关下载链接:[url=//download.csdn.net/download/fanyangde/3259859?utm_source=bbsseo]//download.csdn.net/download/fanyangde/3259859?utm_source=bbsseo[/url]
西门子S7-200项目密码读取工具V1.0下载
解压后,点击打开,加载工程文件即可。只对有工程文件的可用。 相关下载链接:[url=//download.csdn.net/download/u010830770/10705255?utm_source=bbsseo]//download.csdn.net/download/u010830770/10705255?utm_source=bbsseo[/url]
相关热词 c#交错数组 c# task停止 c#使用mongodb c#入门经典第七版 c#设置超时程序 c#一个日期格式加上时分 c# 按行读取excel c#画图固定 c# 读取dataset 如何c#按钮透明
我们是很有底线的