Posts

Showing posts with the label Bitmaps

'Blitting' a Bitmap Image to the Screen.

I recently needed to revisit this to create simple monochrome bitmaps representing the sets of nozzles turned off/on on a Xaar microarrayer printhead. Sample code here .  Essential steps are outlined in the following code [code language="cpp"] // 1. Create the uninitialized bitmap, that is compatible // with the the specified device context CPaintDC dc( this ); CBitmap bitmap; bitmap.CreateCompatibleBitmap( &dc, 20, 20 ); // 2. Create memory device context, that is compatible // with the specified device (dc in this case) CDC dcMem; dcMem.CreateCompatibleDC( &dc ); // 3. Obtain/create the bitmap and select into // the memory device context. CBrush brushblue( RGB( 0, 0, 255 ) ); CBrush brush( RGB( 0, 255, 255 ) ); CBitmap* pOldBitmap = dcMem.SelectObject( &bitmap ); dcMem.FillRect( CRect( 0, 0, 10, 10 ), &brushblue ); dcMem.FillRect( CRect( 10, 0, 20, 10 ), &brush ); dcMem.FillRect( CRect( 0, 10, 10, 20 ), &brush ); dcMem.FillRect( CRect(...

Creating Bitmap Files from Raw Pixel Data in C++

Image
Creating the byte array This post describes a means of taking data in the form of raw pixels containing RGB values as well as the image height, width and the number of bits per pixel (24 in this case) and converting this into a bitmap (BMP) file. Example Visual Studio 2010 project is downloadable from here: www.technical-recipes.com/Downloads/BitmapRawPixels.zip In this this post I originally described how I needed a means of representing binary array values (inkjet printhead nozzles turned ON/OFF) as a set of colored 'squares' or pixels, so that nozzles switched ON/OFF could be represented by two different colours - black or white. The bitmap width was always going to be 128, while the bitmap length ("SizeValue") was one of a set of discrete set of values in the range { 1000, 1250, 1251, 1350 }. For this example I did not have to worry about padding additional values