473,726 Members | 2,258 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Image getting corrupt


Hi guys,
I am writing a imaging aplication on VC++.I have to display images and
apply effects onto it.Images could be of any type like
jpg,gif,bmp,psd ...
I am using createDibSectio n API.it requires BITMAPINFO struc as one of
its parameters.Its working well(Images are successfully displayed) but
my problem is that in certain images(of any type)they are skewed and
becomes B/W(means Data corruption).U can see my code of populating
BITMAPINFO and CreateDibSectio n...Can any body help me in solving the
annoying probs.
[Note:If I am changing the dimension of image by few pixels using
photoshop resultant image is displayed well.]

BITMAPINFO bmi;

bmi.bmiHeader.b iSize = sizeof(BITMAPIN FOHEADER);
bmi.bmiHeader.b iBitCount = 24; bmi.bmiHeader.b iWidth
= swidth;//Image width
bmi.bmiHeader.b iHeight = -sheight;//Image Height
bmi.bmiHeader.b iPlanes = 1;
bmi.bmiHeader.b iCompression =
BI_RGB; //uncompressed bmi.bmiHeader.b iSizeImage =
0; bmi.bmiHeader.b iXPelsPerMeter = 0;
bmi.bmiHeader.b iYPelsPerMeter = 0;
bmi.bmiHeader.b iClrUsed = 0;
bmi.bmiHeader.b iClrImportant = 0;
bmi.bmiColors[0].rgbBlue = 0;
bmi.bmiColors[0].rgbRed = 0;
bmi.bmiColors[0].rgbGreen = 0;
bmi.bmiColors[0].rgbReserved = 0;
hBmp = CreateDIBSectio n( hdc_
, &bmi
, DIB_RGB_COLORS
, &imageBuff //pointerto created buf
, NULL
, 0);

dcMem = ::CreateCompati bleDC(hdc_);//creates a memory compatible
device context (DC)passing exixting DC
(HBITMAP) ::SelectObject( dcMem, hBmp); //selects handle of image
toDevice

--
apoorv
------------------------------------------------------------------------
Posted via http://www.codecomments.com
------------------------------------------------------------------------

Nov 17 '05 #1
1 1214
On Mon, 14 Feb 2005 09:47:52 -0600, apoorv
<ap***********@ mail.codecommen ts.com> wrote:

Hi guys,
I am writing a imaging aplication on VC++.I have to display images and
apply effects onto it.Images could be of any type like
jpg,gif,bmp,ps d...
I am using createDibSectio n API.it requires BITMAPINFO struc as one of
its parameters.Its working well(Images are successfully displayed) but
my problem is that in certain images(of any type)they are skewed and
becomes B/W(means Data corruption).U can see my code of populating
BITMAPINFO and CreateDibSectio n...Can any body help me in solving the
annoying probs.
[Note:If I am changing the dimension of image by few pixels using
photoshop resultant image is displayed well.]


Scan lines must be multiples of 4 bytes.

So, for a 3-pixel wide 24-bit BGR image, each scanline will be 12
bytes, the last 3 unused.

Here's an easy way to calculate the required width of a row for a
specific width and bits-per-pixel:

scanwid = (((width * bpp + 7) / 8) + 3) & ~3;

Of course, to create the number of bytes required for the image data,
you need to multiply this scanwid by the image height.

--
Sev
Nov 17 '05 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
2751
by: Bjarte Andreassen | last post by:
Hi, I have a problem retreiving images from a MSSQL 2000 database with php. I wrote an ASP page using "response.binarywrite" to get the same image, and this worked 100%. Therefore, the images in my database is not corrupt. Only the top part of the image is returned to the client's browser window. Same result with both IE6 and Opera 7.11. I guess the problem is header related, and I've tried to output different headers with no luck...
303
17689
by: mike420 | last post by:
In the context of LATEX, some Pythonista asked what the big successes of Lisp were. I think there were at least three *big* successes. a. orbitz.com web site uses Lisp for algorithms, etc. b. Yahoo store was originally written in Lisp. c. Emacs The issues with these will probably come up, so I might as well mention them myself (which will also make this a more balanced
4
2326
by: moondaddy | last post by:
Using vb.net I need to download image files to the client browser where they can save to disk. Below is some sample code I'm using. when I run this the File Download window in the browser says: File name: ViewAttachment File type: From localhost 1) "ViewAttachment" is the name of the aspx page and not the image file. 2) Its not picking up the file type of jpg. For ContentType I used
35
2668
by: Stan Sainte-Rose | last post by:
Hi, What is the better way to save image into a database ? Just save the path into a field or save the image itself ? I have 20 000 images (~ 10/12 Ko per image ) to save. Stan
21
21343
by: cman | last post by:
does anyone know why i can't generate images with: header("Content-type:image/jpeg"); imagejpeg($img_number); i've tried different examples but i always get a text output as if the header doesn't make a difference at all. <?php //random_number.php $img_number = imagecreate(100,50);
6
1991
by: nichughes | last post by:
Hello all, A question relating to http://www.entrust-systems.net/ Just for a change I have run into a problem that seems to be OS specific rather than browser specific - the box image that is acting as a faux border for the main text block shows nasty image effects on the outside when using either Firefox or Konqueror on Suse Linux. This image is set to resize with the browser window (and hence the text) and this seems to be what...
23
5928
by: Peter | last post by:
I have a problem with a page show_image.asp that returns a jpg image under Windows XP Pro SP2. The page sets content type as: Response.ContentType = "image/jpg" While this works perfectly fine on most machines, on some machines I experience this problem: When loading the page a window pops up that asks if I want to open the document show_page.asp. When I click "Open" Interdev pops up and opens up a
7
4820
by: bookon | last post by:
I was running into the System.Drawing.Image.FromStream "parameter is not valid" on some of the images I was retrieving from a blob column in Sql Server. I thought there were corrupt images as almost all worked (all are gifs), and only a few broke when this line ran: Image img = Image.FromStream(ms); here is the original code: b = (byte)dt.Rows.ItemArray; //b.ToString() ms = new MemoryStream(); ms.Write(b, 0, b.Length);
8
2775
by: iheartvba | last post by:
Hi this is a query made using access query builder: SELECT tblBank.BankID, Now() AS TimeRecd, Val(Right(nz(,0),3)) AS ConsID, "AutoCASH" AS RecUser, tblBank.Dt, Forms!frmRecCASHRunningBal!tbGroup AS GroupID FROM tblBank WHERE (((tblBank.Dt)>(!!-1) And (tblBank.Dt)<(!!+1))); 1.tblBank has a record in the Dt field which equals = 02/07/08 2. tbBankMinDate -1 = 01/07/08 3. tbBankRecDate + 1 = 03/07/08
0
8752
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9402
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9259
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9182
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9120
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
6702
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4785
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3228
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
2639
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.