GIDForums  

Go Back   GIDForums > Computer Programming Forums > C++ Forum
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

 
 
Thread Tools Search this Thread Rate Thread
  #1  
Old 04-Oct-2007, 03:07
Soundzz Soundzz is offline
Awaiting Email Confirmation
 
Join Date: Oct 2007
Posts: 14
Soundzz is on a distinguished road

How to get the pixels' value of a bmp image? (Pelles C)


Could anyone help me that how I can get the value of each pixels in a bmp image?

I would like to do image encryption using Chaos in Pelles C, could anyone help me about this topic??
  #2  
Old 04-Oct-2007, 04:03
ahbi82 ahbi82 is offline
Member
 
Join Date: Jul 2006
Posts: 143
ahbi82 will become famous soon enough

Re: How to get the pixels' value of a bmp image?(Pelles C)


Quote:
Originally Posted by Soundzz
Could anyone help me that how I can get the value of each pixels in a bmp image?

I would like to do image encryption using Chaos in Pelles C, could anyone help me about this topic??

From my point of view, you need to decode the BMP image first to get the raw image data.

What do you mean by image encryption ?
  #3  
Old 04-Oct-2007, 09:18
davekw7x davekw7x is offline
Outstanding Member
 
Join Date: Feb 2004
Location: Left Coast, USA
Posts: 5,218
davekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to behold

Re: How to get the pixels' value of a bmp image?(Pelles C)


Quote:
Originally Posted by Soundzz
Could anyone help me that how I can get the value of each pixels in a bmp image?

The answer is: That depends. (Of course, that is the answer to most questions, isn't it?)

In this case, it depends on the kind of bitmap file.

Some examples for bitmap files without compression:

Bitmaps with 8-bit color information (256 colors) have a color table after the headers and before the pixel data. The color table usually is 1024 bytes (four bytes for each color: Green, Blue, Red intensity and a zero byte), but it could be smaller, depending on how many colors are actually used. Each byte of the pixel data is used to index into the color table to be able to access the Red, Green, and Blue byte values for that pixel.

For bitmaps with fewer colors, each pixel data byte is packed with 4-bit or 2-bit or 1-bit color information for multiple pixels. The color information for each pixel used to index into the color table (color tables are smaller for these cases).

Bitmaps with 24-bit color information ("Millions of colors") have no color table. The pixel data starts immediately after the headers. Each pixel has its color data in three successive bytes (The byte values are for Green, Blue, and Red intensity, in that order.)

There are several compression methods that are sometimes used to make the bitmap files smaller (and to make your task a little more elaborate).

Bottom line:
If you know what kind of bitmap file you have (How many colors? Is compression used?) you may be able to write a fairly straightforward program to extract the color information. If you are trying to write a program to handle any kind of bitmap file then it's a little more "interesting".

Here are a couple of links. There are about a million others---maybe more. Find one that you like.

wotsit

Dr. Dobb's

and, of course
Don't forget Microsoft; they invented it!

Regards,

Dave

Footnote: I have seen applications (including some apparently popular source code on the web) that create non-standard bitmaps that may or may not render correctly with other applications. (Things like omitting the color table from 8-bit grayscale files.) An understanding, not only of the "standard" bitmap format, but also an understanding of where the bitmap file came from---and what you intend to do with the results---is important.
  #4  
Old 04-Oct-2007, 16:06
Soundzz Soundzz is offline
Awaiting Email Confirmation
 
Join Date: Oct 2007
Posts: 14
Soundzz is on a distinguished road

Re: How to get the pixels' value of a bmp image?(Pelles C)


Quote:
Originally Posted by ahbi82
From my point of view, you need to decode the BMP image first to get the raw image data.

What do you mean by image encryption ?
Thanks for your opinions

m.. I want to encrypt an image by using Chaos mapping, such as Baker and Standard.
  #5  
Old 04-Oct-2007, 16:09
Soundzz Soundzz is offline
Awaiting Email Confirmation
 
Join Date: Oct 2007
Posts: 14
Soundzz is on a distinguished road

Re: How to get the pixels' value of a bmp image?(Pelles C)


Quote:
Originally Posted by davekw7x
The answer is: That depends. (Of course, that is the answer to most questions, isn't it?)

In this case, it depends on the kind of bitmap file.

Some examples for bitmap files without compression:

Bitmaps with 8-bit color information (256 colors)...(skip)

Really thank you for your warm reply!!!

I just start my program and I want to do 8-bit color bmp first(without compression).
However, I am a beginner of Pelles C... I do not know how to write those code actually.. do you have any examples/source code about this ?

Thank you again.
  #6  
Old 04-Oct-2007, 16:26
davekw7x davekw7x is offline
Outstanding Member
 
Join Date: Feb 2004
Location: Left Coast, USA
Posts: 5,218
davekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to behold

Re: How to get the pixels' value of a bmp image?(Pelles C)


Quote:
Originally Posted by Soundzz
Really thank you for your warm reply!!!

I just start my program and I want to do 8-bit color bmp first.
However, I am a beginner of Pelles C... I do not know how to write those code actually.. do you have any examples/source code about this ?

Thank you again.

What compiler are you using? The reason that I ask is that some of the implementation-dependent parameters (sizes of shorts, ints and longs, for example) require some definitions to be a little different at the beginning of the project. Instead of giving you code with a bunch of conditional definitions, I can just tailor it to a particular setup, in hopes of making it a little easier to get started. Did you look at the Dr. Dobb's link? There is some source code there. (Not exactly the same as I might have done some of the things, but I think it can be made to work.)

Note that I have written a number of simple bitmap applications in C (not C++). They serve my purpose(s) OK, but are not necessarily the best examples for teaching (and, in particular, C++ program organization around a BitMap class would organize things a somehwhat differently). But, yes, I can give you some example code for reading in and interpreting the headers.

Regards,

Dave
  #7  
Old 04-Oct-2007, 16:39
Soundzz Soundzz is offline
Awaiting Email Confirmation
 
Join Date: Oct 2007
Posts: 14
Soundzz is on a distinguished road

Re: How to get the pixels' value of a bmp image?(Pelles C)


Quote:
Originally Posted by davekw7x
What compiler are you using? The reason that I ask is that some of the implementation-dependent parameters (sizes of shorts, ints and longs, for example) require some definitions to be a little different at the beginning of the project. Instead of giving you code with a bunch of conditional definitions, I can just tailor it to a particular setup, in hopes of making it a little easier to get started. Did you look at the Dr. Dobb's link? There is some source code there. (Not exactly the same as I might have done some of the things, but I think it can be made to work.)

Note that I have written a number of simple bitmap applications in C (not C++). They serve my purpose(s) OK, but are not necessarily the best examples for teaching (and, in particular, C++ program organization around a BitMap class would organize things a somehwhat differently). But, yes, I can give you some example code for reading in and interpreting the headers.

Regards,

Dave

Thanks for your reply again!!!

I am using this oneelles C compiler (version 4.50)

I have read those link that you gave to me, however, I understand some of them only... do not know how to start my program..

www.apl.jhu.edu / Notes / Corrigan / lena.BMP
this bmp is the one that I want to read its pixel first....

someone told me that doing Chaos mapping, first I need to know each value of its pixels first, and then change their position and so on....

it is very difficult to me.. as i am a beginner of C...

I am very happy of your reply and you help me lots!!

Thank you!
  #8  
Old 05-Oct-2007, 09:07
davekw7x davekw7x is offline
Outstanding Member
 
Join Date: Feb 2004
Location: Left Coast, USA
Posts: 5,218
davekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to behold

Re: How to get the pixels' value of a bmp image?(Pelles C)


Quote:
Originally Posted by Soundzz
T
I am using...Pelles C compiler

I don't have that one, but I think that it is recent enough to make it easy to get you started with the kind of notation that I use when it is important to know the sizes of various integer data types. (This is supported by the C99 Standard C language specification. Not all compilers---Microsoft for example---have the <stdint.h> header.)

I will show a header that you can use with the couple of examples that I will post (next time) to read the information from bmp file headers.

The way that I do things: I read the bmp headers directly into structs that let me look at the bitmap parameters.

I have simplified the files a little, with a some loss of generality (won't work on big-endian architectures like PowerPC Macintoshes and certain Sun workstations.) Since you are using Windows, they should be OK. If you were planning to distribute source to other people who might be running on different platforms, things might be a little more complicated (not very much, but some).

My header file uses a pragma to make sure that the header structs that I define will be the correct size. If the program doesn't work with your compiler, we (meaning you) will have to do a little detective work.

Anyhow, paste the following into two files in your working directory. Run the program and tell me what the output is.

The following will be used in all of our bitmap programs

CPP / C++ / C Code:
/* 
 * bmp_headers.h
 */
#ifndef BMP_HEADERS_H__
#define BMP_HEADERS_H__
/*
 * Tested with little-endian machines and "normal"
 * little-endian bmp files.
*/

#include <stdint.h>

/*
 * I have found that the following pragma is necessary to ensure
 * the correct size of the structs.
 *
 * In the file, the BmpFileHeader struct is 14 bytes long and
 * the BmpInfoHeader is 40 bytes long
 *
 * Works for GNU, Borland bcc32, Microsoft VC++
 *
 * davekw7x
 */
/* Note that all 'standard' bitmap files are little-endian
 * If your architecture is little-endian, then you can
 * read the first 54 bytes of the file directly into the
 * following two structs.
 */ 

#pragma pack(push, 1)
typedef struct {
    uint16_t type;               /* Two chars "BM" in little-endian order  */
    uint32_t size;               /* File size                              */
    uint16_t reserved1;
    uint16_t reserved2;
    uint32_t offset;             /* Bytes from start of file to pixel data */
} BmpFileHeader;

typedef struct {
    uint32_t size;               /* Size of this header  (40 bytes)        */
    int32_t  width;              /* Bitmap width in pixels                 */
    int32_t  height;             /* Bitmap height in pixels                */
    uint16_t planes;             /* Must be 1                              */
    uint16_t bits;               /* Bits per pixel. (8 for 256-color bmps) */
    uint32_t compression;        /* 0 means no compression                 */
    uint32_t imagesize;          /* Number of bytes in pixel data section  */
    int32_t  xresolution;        /* Not used by any of my functions        */
    int32_t  yresolution;        /* Not used by any of my functions        */

    uint32_t ncolors;            /* 0 means use all colors                 */
    uint32_t importantcolors;    /* 0 means all are important              */
} BmpInfoHeader;
#pragma pack(pop)

#endif

Here is a test program that is only used at first, to make sure that everything after this will compile as required.
CPP / C++ / C Code:
/*
 * test_bmp_headers.c
 *
 * Tests size of bitmap headers
 *
 * Run this before writing any program that uses bmp_headers.h
 *
 */
#include <stdio.h>
#include <assert.h>
#include "bmp_headers.h"
int main()
{
    printf("sizeof(BmpFileHeader) = %d\n", sizeof(BmpFileHeader));
    printf("sizeof(BmpInfoHeader) = %d\n", sizeof(BmpInfoHeader));
    assert(sizeof(BmpFileHeader) == 14);
    assert(sizeof(BmpInfoHeader) == 40);
    return 0;
}

The output should be:

Code:
sizeof(BmpFileHeader) = 14 sizeof(BmpInfoHeader) = 40


Regards,

Dave
Last edited by davekw7x : 05-Oct-2007 at 09:50.
  #9  
Old 09-Oct-2007, 01:57
Howard_L Howard_L is offline
Regular Member
 
Join Date: Apr 2007
Location: Maryland/PA, USA
Posts: 803
Howard_L is a jewel in the roughHoward_L is a jewel in the roughHoward_L is a jewel in the rough

Re: How to get the pixels' value of a bmp image?(Pelles C)


Well it looks like this thread has stalled... With all the questions about image manipulation lately I thought I'd try to get a bit more familiar with it... and a .bmp seemed like a good place to start I guess.
So using MS paint (don't laugh) I began placing a couple of dots around to see what I could.

I began with a monochrome format which made a much smaller file than the default 24 bit format. I soon found that the data for the bottom row of the image was at the beginning of the file AFTER what appeared to be the file header area. I also got the feel for how one byte of data was used for eight pixels in that format.

I was viewing the file using a hexdump feature my editor (textpad)will do.
Then made my own little program to organize and view the data:
CPP / C++ / C Code:
#include <stdio.h>

int main(void)
{
  unsigned int i, j, endline, startpix, maxread = 200;
  char filename[] = "exp2.bmp\0\0\0\0\0\0\0\0\0\0\0\0";
  unsigned char cdat[1000];
  FILE *fp;

  if( (fp = fopen(filename, "r")) == NULL)
  {
    printf("%s failed to open, is it there?", filename);
    return 1;
  }
  printf("\n      File \"%s\" opened for reading: \n\n", filename);
  printf(" hex   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f \n0000  ");
  for(i=j=0 , endline = 0x10, startpix = 40; i < maxread; i++, j++)
  {
    cdat[i] = getc(fp);
    if(i == 0x0a)
    {
      startpix = cdat[i];   /* risky... will only get the value of that one byte */
    }
    if(i == startpix)
    {
      printf("\n\n  End header;  Begin pixels;  Bottom line first;  Left to Right: \n\n%04x  ", i);
      endline = 24;
      j = 0;
    }
    if(j % endline == 0)
      if(j > 0)
      {
        printf("\n%04x  ", i);
      }
    printf("%02x ", cdat[i]);
  }
  fclose(fp);
  printf("\n    Reading intentionally stopped here at %u bytes. \n ", maxread);
  return 0;
}
After that I looked at a 24 bit format for a while and began to get a feel for that.

NOT to my suprise I found that the header areas of both were indeed laid out as
you indicated in your structures!
Code:
/****************************************** actual output ***********/ File "exp2.bmp" opened for reading: hex 0 1 2 3 4 5 6 7 8 9 a b c d e f 0000 42 4d 76 7e 05 00 00 00 00 00 36 00 00 00 28 00 0010 00 00 90 01 00 00 2c 01 00 00 01 00 18 00 00 00 0020 00 00 40 7e 05 00 c4 0e 00 00 c4 0e 00 00 00 00 0030 00 00 00 00 00 00 End header; Begin pixels; Bottom line first; Left to Right: 0036 00 00 80 ff ff ff 00 00 ff ff ff ff 00 80 00 ff ff ff 00 ff 00 ff ff ff 004e 80 00 00 ff ff ff ff 00 00 ff ff ff 00 00 00 ff ff ff ff ff ff ff ff ff ... snip ... (note the 3 bytes of data for a pixel 'ff ff ff' is white)
matching that header data to your structures:
Code:
typedef struct { 42 4d uint16_t type; /* Two chars "BM" in little-endian order */ 76 7e 05 00 uint32_t size; /* File size */ 00 00 uint16_t reserved1; 00 00 uint16_t reserved2; 36 00 00 00 uint32_t offset; /* Bytes from start of file to pixel data */ } BmpFileHeader; typedef struct { 28 00 00 00 uint32_t size; /* Size of this header (40 bytes) */ 90 01 00 00 int32_t width; /* Bitmap width in pixels */ 2c 01 00 00 int32_t height; /* Bitmap height in pixels */ 01 00 uint16_t planes; /* Must be 1 */ 18 00 uint16_t bits; /* Bits per pixel. (8 for 256-color bmps) */ 00 00 00 00 uint32_t compression; /* 0 means no compression */ 40 7e 05 00 uint32_t imagesize; /* Number of bytes in pixel data section */ c4 0e 00 00 int32_t xresolution; /* Not used by any of my functions */ c4 0e 00 00 int32_t yresolution; /* Not used by any of my functions */ 00 00 00 00 uint32_t ncolors; /* 0 means use all colors */ 00 00 00 00 uint32_t importantcolors; /* 0 means all are important */ } BmpInfoHeader; /* IT FITS */
I know you know all this , but it was a revelation to me and thought an
illustration like this might help others like me to understand...
Anyhow the next step was to implement your structures which work very nicely:
CPP / C++ / C Code:
#include <stdio.h>
#include "bmp_headers.h"

int main(void)
{
  FILE *fp;
  char *cptr;
  unsigned char c;
  unsigned int i, j, linect, endline, pixwidth;
  char filename[] = "exp2.bmp\0\0\0\0\0\0\0\0\0\0\0\0";

  BmpFileHeader fheader;
  BmpInfoHeader iheader;

  printf("sizeof: fheader: %d   iheader: %d \n", sizeof(fheader), sizeof(iheader) );
  /* looks good  14 and 40*/

  if( (fp = fopen(filename, "r")) == NULL)
  {
    printf("%s failed to open, is it there?", filename);
    return 1;
  };
  fread(&fheader, sizeof(fheader), 1, fp );
  fread(&iheader, sizeof(iheader), 1, fp );
  cptr = (void*)&fheader;
  cptr++;
  printf("           fheader.type= %c%c \n", fheader.type, *cptr );
  printf("           fheader.size= %u   \n", fheader.size );
  printf("      fheader.reserved1= %u   \n", (int)fheader.reserved1 );
  printf("      fheader.reserved2= %u   \n", (int)fheader.reserved2 );
  printf("         fheader.offset= %u   \n", fheader.offset );
  printf("           iheader.size= %u   \n", iheader.size );
  printf("          iheader.width= %u   \n", iheader.width );
  printf("         iheader.height= %u   \n", iheader.height );
  printf("         iheader.planes= %u   \n", (int)iheader.planes );
  printf("           iheader.bits= %u   \n", (int)iheader.bits );
  printf("    iheader.compression= %u   \n", iheader.compression );
  printf("      iheader.imagesize= %u   \n", iheader.imagesize );
  printf("    iheader.xresolution= %u   \n", iheader.xresolution );
  printf("    iheader.yresolution= %u   \n", iheader.yresolution );
  printf("        iheader.ncolors= %u   \n", iheader.ncolors );
  printf("iheader.importantcolors= %u   \n", iheader.importantcolors );

  fseek(fp, (long)fheader.offset, 0);   /* ensure fp is at right place */
  linect = 0;
  endline = 30;
  pixwidth = (iheader.bits / 8);
  for(i = 0 ; i < 5000; i++)
  {
    if(i % endline == 0)
    {
      if( (++linect % 25) == 0)
      {  getchar();
      }
      printf("\n%04x  ", i);
      j = 0;
    }
    if( (i % 3) == 0 && j++ > 0)
    {
      putchar(0x20);
    }
    c = getc(fp);
    printf("%02x", c );
  }

  fclose(fp);

  return 0;
}
sample Output:
Code:
sizeof: fheader: 14 iheader: 40 fheader.type= BM fheader.size= 360054 fheader.reserved1= 0 fheader.reserved2= 0 fheader.offset= 54 iheader.size= 40 iheader.width= 400 iheader.height= 300 iheader.planes= 1 iheader.bits= 24 iheader.compression= 0 iheader.imagesize= 360000 iheader.xresolution= 3780 iheader.yresolution= 3780 iheader.ncolors= 0 iheader.importantcolors= 0 0000 000080 ffffff 0000ff ffffff 008000 ffffff 00ff00 ffffff 800000 ffffff 001e ff0000 ffffff 000000 ffffff ffffff ffffff ffffff ffffff ffffff ffffff ...snip...
I had a question there,,
How would YOU print the two characters of fheader.type which are in a uint16_t ?
I kinda cheated there...
So yes, the functions compile, what's next Dave?
++Howard;
  #10  
Old 09-Oct-2007, 09:51
davekw7x davekw7x is offline
Outstanding Member
 
Join Date: Feb 2004
Location: Left Coast, USA
Posts: 5,218
davekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to behold

Re: How to get the pixels' value of a bmp image?(Pelles C)


Quote:
Originally Posted by Howard_L
one byte of data was used for eight pixels in that format.
For a 24-bit bmp file, the pixel data appears like this:

Suppose the width is "WIDTH" and the height is "HEIGHT"

There are HEIGHT rows of pixel data. Each row consists of WIDTH triads of color intensity data. A triad consists of three bytes. The values of the bytes give color intensity for Blue, Green, and Red colors, in that order. See Footnote 1.

So, each row contains 3 * WIDTH bytes of pixel data. If the total number of bytes on the row is not a multiple of four, extra padding bytes (value zero) are appended. There is no newline or other separator between rows. For other people who didn't look carefully at your commented output: Note, also, that the first row contains pixel data for the bottom-most line of the picture.

Since your example has a width of 400 pixels, the total number of pixel data bytes on each row is 1200, and no padding bytes are necessary.

Exercise for the student: suppose it had a width of 399 pixels, how many padding bytes would be required for each row? How about 398? 397? 396?



Quote:
Originally Posted by Howard_L
...print the two characters of fheader.type which are in a uint16_t...

The first two bytes in a bmp file are ascii 'M' and 'B' in that order. Think of it as a "little-endian 'B','M'. Since I defined the header struct as uint16_t, and the program (as written) is restricted run on little-endian machines, the value of fheader.type will be 0x4d42, as you can verify by
CPP / C++ / C Code:
  printf("           fheader.type= 0x%04x \n", fheader.type);
If you want to put a check in your program to make sure the file has the right magic number, you might use something like
CPP / C++ / C Code:
/* in bmp_headers.h */
#define BMP_MAGIC 0x4d42

/* in the program */
    if (fheader.type != BMP_MAGIC) {
        printf("Magic number is 0x%04x. Bit map file must have 0x%04x\n",
              fheader.type, BMP_MAGIC);
        /* some error stuff here. Maybe  exit(EXIT_FAILURE); */
    }


Quote:
Originally Posted by Howard_L
what's next...
The original poster wanted to get the grayscale values of the pixels into an array so that he could execute an edge detection algorithm consisting of a 2-D convolution. Getting the pixel data values into a 2-D array isn't hard, but you can't see what you have until you are through.

Let's do something simple: Convert the 24-bit color bitmap to a 24-bit grayscale bitmap. (Seems kind of a waste, but it is pretty easy to get something that you can look at to see the results of your manipulation.)

First of all, the headers will be exactly the same for the grayscale file as for the original, right. (Can't get much easier than that.) So, write them.

Now, make two loops (for rows and columns) that go through and replace each three bytes with three bytes having the average value of those three. So our output file will have the green, blue, and red bytes with equal values for each triad. See Footnote 2.

For this experiment, you don't have to store them in an array, just read 3, calculate average, write 3. Run the output file through your program that prints header values. Finally, open the file with paint (or whatever... I use GIMP on my Linux platform) Make sure that the output file looks like a grayscale version of the input.

Next step: Dynamically allocate a 2-D array of uint_8 to hold the grayscale pixel values. Read all of the pixels. Then use the values from the array to write out the pixel triads.

The next part could be to write an 8-bit (256-color) grayscale bitmap file instead of a 24-bit grayscale. (Size is about 1/3 of the other, and total information is the same.)

The next part could be to process the grayscale values in some way. Maybe make it brighter or darker. Maybe to increase or decrease contrast. Maybe to perform the 2-D Sobel convolution to emphasize the edges in the picture. Maybe...


Regards,

Dave

Footnote 1: I call the three color bytes a "triad." I just kind of made that up. Some people define a struct that holds the bytes in the same order as they appear in the file:

CPP / C++ / C Code:
typedef struct RGB
{
  uint8_t blue;
  uint8_ green;
  uint8_t red;
} RGB;

I didn't see any need for such a thing, but I put it here as a reminder that the order is blue, green, red. (We talk about "rgb" colors, but the order in the file is gbr.)

Footnote 2: If you just use the average rgb values for grayscale values of a well color-balanced photograph you will (probably) perceive that it's kind of flat. Especially if it has human skin tones. Some programs use a weighted average of the rgb values. Typically they use relative weights of {0.11, 0.59, 0.3} to give a more natural-looking luminance to the grayscale
Last edited by davekw7x : 09-Oct-2007 at 11:18.
 
 

Recent GIDBlogToyota - 2009 May Promotion by Nihal

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Question about locking surfaces to directly access pixels, SDL. george89 C++ Forum 0 18-Jun-2006 22:16
Pixels dan_ielle20 C++ Forum 0 23-Mar-2005 09:54
Checking source codes of image, audio and video files onauc C Programming Language 5 26-Feb-2005 22:47

Network Sites: GIDNetwork · GIDWebHosts · GIDSearch · Learning Journal by J de Silva, The

All times are GMT -6. The time now is 00:05.


vBulletin, Copyright © 2000 - 2009, Jelsoft Enterprises Ltd.