Sponsored Content
Full Discussion: Converting XImage to PNG
Top Forums Programming Converting XImage to PNG Post 302481361 by fpmurphy on Friday 17th of December 2010 09:33:37 AM
Old 12-17-2010
Sure, lots out there. Koders.com is your friend for source code. Better than Google. For example here is how to convert to PNM format. Part of xgame/ximages.c.

Code:
save_ximage_pnm(XImage *img,char *pnmname,int type) {
	int x,y;
	unsigned long pixel;
	FAIL_ON(!img || !pnmname || type<=0, "bad argument(s)"); 

	fprintf(stdout,"P%d\n%d %d\n255\n",type,img->width, img->height);
	for (y=0; y<img->height; y++) {
		for (x=0; x<img->width; x++) {
			pixel=XGetPixel(img,x,y);
			if (type==ASCII_PPM) {
				fprintf(stdout,"%ld %ld %ld\n",
						pixel>>16,(pixel&0x00ff00)>>8,pixel&0x0000ff);
			} else if (type==BINARY_PPM) {
				fprintf(stdout,"%c%c%c",
					(char)(pixel>>16),
					(char)((pixel&0x00ff00)>>8),
					(char)(pixel&0x0000ff) );

			} else {
				fprintf(stderr,"PnM type %d not supported!",type);
				return(0);
			}
		}
	}
	return(1);
}

Once your image is in PNM format, it is easy to convert to most other formats.

If you use the Firefox web browser, you can add a domain specific searchbar to help with source code searches. See https://addons.mozilla.org/en-US/fir...koders&cat=all
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

converting kb to mb

When I create filesystems in AIX i often get confused(using smit) When you specify size in aix, it is asked like this SIZE of file system (in 512-byte blocks) I never seem to grasp this, what is the equation to get say 500mb? Or is there a program anyone knows of that does this, like a... (1 Reply)
Discussion started by: csaunders
1 Replies

2. Shell Programming and Scripting

makefile to convert .jpeg to .png thumnails

Hello! I'm desperately trying to write a makefile that converts and scales jpeg files to png files in subdirectories I want to use netpbm, so I just need the commands: anytopnm pnmscale pnmtopng For various reasons i want to use a makefile. This is the first time i use the make tool... (1 Reply)
Discussion started by: henningbaer
1 Replies

3. Shell Programming and Scripting

cgi script to print all .png files on a single page

Hi guys I'm relativley new to Perl, and have not touched html before, im trying to write a cgi script that prints all images on a single html page from a given directory. Im using perl to gather stats, rrdtool to update and create graphs now i just need to print these graphs all onto 1 index.cgi... (3 Replies)
Discussion started by: jeffersno1
3 Replies

4. Programming

Changing BPP in XImage

im trying to take a 24 BPP screen cap and save it to bitmap, but seems like it XImage is always 32 BPP, the value 0x00FFFFFF supposed to be 24 ! whenever i change bmpInfoHeader.biBitCount to 24, the image gets messed up.. here is the code im using typedef struct tagBITMAPFILEHEADER {... (5 Replies)
Discussion started by: JonhyM
5 Replies

5. Shell Programming and Scripting

Loop through directory convert jpg to png

Hi guys. I will be frequently needing to convert .jpg files to 183x183 .png thumbnails. I can't quite seem to wrap my head around how to make a for loop to do this. With the help of my friend (who may have mislead me, I'm quite confused) I've got this. This is bash the command is: pngify... (3 Replies)
Discussion started by: Drayol
3 Replies

6. Windows & DOS: Issues & Discussions

Super Simple Script to remove first characters of any png file

Well I searched the net with varying success, but it seems kinda hard to find a one/max 2 lined command to: strip all *.png files in the folder from their first two characters. Any help is appreciated. In DOS commandline of course... (17 Replies)
Discussion started by: pasc
17 Replies

7. Shell Programming and Scripting

Sendmail Png Attachments

I use sendmail to send html emails, my script works perfect and sends email with plain text attachment. Now i need to attache png file to the email and this attachment part is not working. ( echo "From: $FROM" echo "To: $TO" echo "MIME-Version: 1.0" echo "Subject: $SUBJECT" echo... (4 Replies)
Discussion started by: posner
4 Replies

8. Shell Programming and Scripting

Mailing multiple PNG attachments using sendmail

Need assistance in using the below script and having multiple png file attachments in the same script . Your inputs are appreciated. I dont have uuencode , I use either mailx, sendmail, mpack . ( echo "to: samplemail@somewhere.com" echo "from: samplemail@elsewhere.com" echo "subject:... (2 Replies)
Discussion started by: ajayram_arya
2 Replies

9. Shell Programming and Scripting

Need Help in converting

I have Excel file with the below three columns, i need your expertise in converting this to .csv file delimiter "|" Excel - Serial Number Serial Name Serial Brand 111 test sample 123 test2 sample1 134 ... (9 Replies)
Discussion started by: kiran_hp
9 Replies
XCreateImage(3X11)						     MIT X11R4							XCreateImage(3X11)

Name
       XCreateImage, XGetPixel, XPutPixel, XSubImage, XAddPixel, XDestroyImage - image utilities

Syntax
       XImage *XCreateImage(display, visual, depth, format, offset, data, width, height, bitmap_pad, bytes_per_line)
	  Display *display;
	  Visual *visual;
	  unsigned int depth;
	  int format;
	  int offset;
	  char *data;
	  unsigned int width;
	  unsigned int height;
	  int bitmap_pad;
	  int bytes_per_line;

       unsigned long XGetPixel(ximage, x, y)
	  XImage *ximage;
	  int x;
	  int y;

       XPutPixel(ximage, x, y, pixel)
	  XImage *ximage;
	  int x;
	  int y;
	  unsigned long pixel;

       XImage *XSubImage(ximage, x, y, subimage_width, subimage_height)
	  XImage *ximage;
	  int x;
	  int y;
	  unsigned int subimage_width;
	  unsigned int subimage_height;

       XAddPixel(ximage, value)
	  XImage *ximage;
	  long value;

       XDestroyImage(ximage)
	   XImage *ximage;

Arguments
       bitmap_pad  Specifies the quantum of a scanline (8, 16, or 32).	In other words, the start of one scanline is separated in client memory
		   from the start of the next scanline by an integer multiple of this many bits.

       bytes_per_line
		   Specifies the number of bytes in the client image between the start of one scanline and the start of the next.

       data	   Specifies a pointer to the image data.

       depth	   Specifies the depth of the image.

       display	   Specifies the connection to the X server.

       format	   Specifies the format for the image.	You can pass or

       height	   Specifies the height of the image, in pixels.

       offset	   Specifies the number of pixels to ignore at the beginning of the scanline.

       pixel	   Specifies the new pixel value.

       subimage_height
		   Specifies the height of the new subimage, in pixels.

       subimage_width
		   Specifies the width of the new subimage, in pixels.

       value	   Specifies the constant value that is to be added.

       visual	   Specifies a pointer to the visual.

       width	   Specifies the width of the image, in pixels.

       ximage	   Specifies a pointer to the image.

       x
       y	   Specify the x and y coordinates.

Description
       The function allocates the memory needed for an structure for the specified display but does not allocate space for the image itself.
       Rather, it initializes the structure byte-order, bit-order, and bitmap-unit values from the display and returns a pointer to the structure.
       The red, green, and blue mask values are defined for Z format images only and are derived from the structure passed in.	Other values also
       are passed in.  The offset permits the rapid displaying of the image without requiring each scanline to be shifted into position.  If you
       pass a zero value in bytes_per_line, Xlib assumes that the scanlines are contiguous in memory and calculates the value of bytes_per_line
       itself.

       Note that when the image is created using or the destroy procedure that the function calls frees both the image structure and the data
       pointed to by the image structure.

       The basic functions used to get a pixel, set a pixel, create a subimage, and add a constant offset to a Z format image are defined in the
       image object.  The functions in this section are really macro invocations of the functions in the image object and are defined in

       The function returns the specified pixel from the named image.  The pixel value is returned in normalized format (that is, the least-sig-
       nificant byte of the long is the least-significant byte of the pixel).  The image must contain the x and y coordinates.

       The function overwrites the pixel in the named image with the specified pixel value.  The input pixel value must be in normalized format
       (that is, the least-significant byte of the long is the least-significant byte of the pixel).  The image must contain the x and y coordi-
       nates.

       The function creates a new image that is a subsection of an existing one.  It allocates the memory necessary for the new structure and
       returns a pointer to the new image.  The data is copied from the source image, and the image must contain the rectangle defined by x, y,
       subimage_width, and subimage_height.

       The function adds a constant value to every pixel in an image.  It is useful when you have a base pixel value from allocating color
       resources and need to manipulate the image to that form.

       The function deallocates the memory associated with the structure.

See Also
       XPutImage(3X11)
       X Window System: The Complete Reference, Second Edition, Robert W. Scheifler and James Gettys

																XCreateImage(3X11)
All times are GMT -4. The time now is 09:55 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy