.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
Gaurav Pal
Post New Web Links

Handle leak in Bitmap.LockBits() ?

Posted By:      Posted Date: October 26, 2010    Points: 0   Category :.NET Framework

I am processing large amounts of images and extract the RGB pixel data to create a hash on it. However there seems to be a weird handle leak in the following code, which I could not trace.

When the code runs, every few minutes the handle count will increase by 1000, eventually leading to a bluescreen on Win7x64 after 20 minutes. Also the amount of memory consumed by the application increases steadily by a hundred MB per minute, GC collection is not freeing all allocated memory. The following was compiled using VS 2008 as 32 bit app. There are more than 10 threads running in parallel.

public static byte[] GetImageHash( Bitmap bmp )
	using ( MD5 md5 = new MD5CryptoServiceProvider() )
		BitmapData data = bmp.LockBits( new Rectangle( Point.Empty, bmp.Size ), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb );
			byte[] rgb = new byte[ data.Width * 3 ];
			for ( int i = 0; i < data.Height; ++i )

View Complete Post

More Related Resource Links

Bitmap.LockBits issue



  I am a little confused about Bitmap.LockBits.

 I create PixelFormat.Format32bppRgb bitmap, but it can successfully be locked with  PixelFormat.Format24bppRgb, without exception raised.

can anyone tell me why? Does lockbits allocate another memory in system and intelligently copy the image data to the memory respect to PixelFormat you specified?




Bitmap FromFile space "file not found"


I am using aspose.slides to create PPTx's. Some of the process involves loading jpg's from another server and including them in the presentation. This works fine in my development environment. When I upload the site to its server, the jpg loading fails.

I am trying to access jpg's on the other server by:

   oFS = New FileStream(sFile, FileMode.Open, FileAccess.Read)

This causes an access violation error when run from the server.

I also boiled the code down to reading the file directly:

   oImg = System.Drawing.Bitmap.FromFile(sFilePath)

This causes a file not found error.

We have narrowed the problem down to the fact that the File Path has a space in it. How does one solve this problem (while still keeping the space, there is a lot of legacy data)? I have tried replacing the space with %20 or +. I have tried using Server.UrlEncode. The error message always comes back with the encoding in place (like no decoding

Bitmap to Image Control - ImageUrl


 This is my first attempt at using the drawing features of asp.net.  I just want to start simple, and create a single color bar based on a value for a single graph.  I wrote this so far, but I can't figure out how to take the bitmap I just created, and apply it to the Image Control. Do I have to save the file first, and then reload it.

Plus, my box keeps coming out pure black, I trying to fill the box with a color. 

This is part of a web custom control, in which I dynamically created an Image Control. I want to apply the bitmap I made to the image control. 


Dim imgGoogle As Image
imgGoogle = New Image
imgGoogle.ImageAlign = ImageAlign.AbsMiddle
imgGoogle.ImageUrl = cs.GetWebResourceUrl(rsType, "ice5software.BotCatcher.Google.gif")
Private Sub DrawBarGraph_Google(ByVal BarValue As Integer)

	Dim objBitmap As System.Drawing.Bitmap
	Dim objGraphics As S

Transactions: Build Scalable Systems That Handle Failure Without Losing Data


Systems that handle failure without losing data are elusive. Learn how to achieve systems that are both scalable and robust.

Udi Dahan

MSDN Magazine July 2008

C++ Q&A: Finding a Win32 Handle, HTML in CHtmlCtrl


This month Paul DiLascia discusses how to find windows with GetLastChild and outputting HTML with a C++ procedure equivalent to document.write.

Paul DiLascia

MSDN Magazine August 2003

COM: Handle Late-bound Events within Visual Basic Using an ATL Bridge


Since a Visual Basic client doesn't handle events directly from late-bound COM objects, it needs some way to capture all the events and parameters launched by any COM object server instantiated at runtime and not known at design time. This article explains how to build a bridge component that does just that. The bridge component transmits the intercepted event data back to the Visual Basic client using another supporting COM object that is capable of holding event data and attributes. The Visual Basic client receives the notification from the bridge and extracts all the information relative to the event from the supporting object.

Carlo Randone

MSDN Magazine March 2001

How to handle Active and inactive items in the dropdownlist?


It is a general ASP.NET questions. Many times some items in dropdownlist will become inactive (retired)or active again. It is easy to handle in the new records which use only currently active items. But how to handle the inactive items which need to be used to show history records. It bothered me a long time, not sure how to solve this problem efficiently.


Multiple forms on the same page MVC2: how to handle (including validation from model)



It should be simple; although I'm having a hard time to figure out the best way to do it. I've MVC2 pages with multiple forms on the same page having different functionalities.

What's the best way to handle this; including the MVC2 way of validation from the model?


encoding/decoding a string to/from bitmap


I have two methods:

Encode - takes a string, converts it to array of bytes, uses bytes to specify colors, creates a color and sets a pixel based on bytes

Decode - takes a pixel, retrieves color (R,G,B) bytes and converts them to characters, that produces a string which was previously encoded

I'm using two for loops (img height/width) to specify position and access pixels

The issue is that once display (Control Panel\Appearance and Personalization\Display) changes to anything other then "Smaller - 100%",
bytes have different values during decoding, thus different string is produced (corrupted).

If the setting is set to "Smaller - 100%" the results are normal.

What can I do to avoid that problem?

Thanks in advance

Memory leak?


I’m not sure how I should consider my problem. I’m developing workflow with VS 2008 for MOSS 2007. I’ve created simple method which remove security group “MyGroup” from the item. And it seems that it works:

private void UsunDziedziczenieUprawnien_ExecuteCode(object sender, EventArgs e)


            using (SPSite site = new SPSite (workflowProperties.SiteId))

Timeout Property, how do i handle timeout


iam using technique mentioned in this tutorial

i also added this AsyncTimeout="300" in page element


the query is correct, how do i handle timeout

Error in: searchresumes.aspx

searchquery was countryid=1 and hide='N' and stateid='34' and cityid='347' and industryid='7' and jobcategoryid='3' and totalexp>=0 and totalexp<=1 and CONTAINS(entirecv, '"Freshers" or "call+center" or "bpo" or "kpo"')

- Hide quoted text -

Error Message: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
Stack Trace:
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavi

How to handle null while converting from my datatable to List<> using LINQ


I am converting my datatable to LISt using LINQ
how do I handle nulls coming from database

List<Port> portDetails = new List<Port>();
DataTable dt = ds.Tables[0];               
portDetails = (from q in dt.AsEnumerable()
select new Port
PortCode = q.Field<string>("Code"),
ExtCode = q.Field<string>("Nb"),
Name = q.Field<string>("Name"))

In the above query if Code is null I do not want property
portcode to be set to the value it should only set if it is
not null or not blank 
PortCode = q.Field<string>("Code"),

What should be syntax
I was trying somethign like this which doesnt work
Portcode = q.Field<bool>("Code") == null ? null : q.Field<bool>("Code")


Writing Bitmap to Response.OutputStream - Generic Error Occured in GDI+



This is what I'm trying to do when I get the error on the server (it works on my local machine):

System.Drawing.Image image = System.Drawing.Image.FromFile(filepath);
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(image); 

Response.ContentType = "image/bmp";
bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Bmp);

I don't think it can be a permissions problem because this works on the server:

System.Drawing.Image image = System.Drawing.Image.FromFile(filepath);
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(image);

Response.ContentType = "image/jpeg";
bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

So how do I get this to work for a bitmap?


How to handle this format in c # 1000/1

Hi. I have problem. If i have data in sql table in this format " 1000/1 " or "2000/2" how i can check if value exist in table + to check what is last record in the table or what is max value in the table? 1000  Connex Y NULL 2000\2   Dan NULL NULL 3000\3   Eged NULL NULL 4000\4   Veolia NULL NULL if I use This code  i get this error " Conversion failed when converting the varchar value '2000\2' to data type int" I need to convert the value only after to check it?   using (SqlCommand cmd = new SqlCommand(strSQL, cn))    {      int intCountExisting = (int)cmd.ExecuteScalar();      if (intCountExisting > 0)       MessageBox.Show("ID Already exists!");    }

how to create a Bitmap with size(20000,30000) in c#

hi how to create a BitMap with size (20000,30000) using C#
ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend