Routines (alphabetical) > Routines: Q > QUERY_PNG

# QUERY_PNG

QUERY_PNG is a method of obtaining information about a PNG image file without having to read the file. See QUERY_* Routines for more information.

When an image is read by READ_PNG, it is scaled to the sBIT value, if it is provided in the file. The sBit provides the actual bit depth, which can be different from the "bit depth" byte. See www.w3.org/TR/PNG-Chunks.html for more information.

## Examples

Query included in creating RGBA (16-bit/channel) and Color Indexed
(8-bits/channel) image.

PRO ex_query_png

rgbdata = UINDGEN(4,320,240)

cidata = BYTSCL(DIST(256))

red = indgen(256)

green = indgen(256)

blue = indgen(256)

tempdir = GETENV('IDL_TMPDIR')

WRITE_PNG, tempdir+'rgb_image.png',rgbdata

WRITE_PNG, tempdir+'ci_image.png',cidata,red,green,blue

; Query and Read the data:

names = [tempdir+'rgb_image.png',$

tempdir+'ci_image.png',$

tempdir+'unknown.png']

FOR i=0,N_ELEMENTS(names)-1 DO BEGIN

ok = QUERY_PNG(names[i],s)

IF (ok) THEN BEGIN

HELP,s,/STRUCTURE

IF (s.HAS_PALETTE) THEN BEGIN

img = READ_PNG(names[i],rpal,gpal,bpal)

HELP,img,rpal,gpal,bpal

ENDIF ELSE BEGIN

img = READ_PNG(names[i])

HELP,img

ENDELSE

ENDIF ELSE BEGIN

PRINT,names[i],' is not a PNG file'

ENDELSE

ENDFOR

END

## Syntax

Result = QUERY_PNG ( Filename [, Info] )

## Return Value

This routine returns a long with the value of 1 (one) if the query was successful (and the file type was correct) or 0 (zero) on failure.

## Arguments

### Filename

A scalar string containing the pathname of the PNG file to query.

### Info

Returns an anonymous structure containing information about the image in the file. The Info.TYPE field will return the value ‘PNG’.

Note: See General Query * Routine Info Structures for detailed structure information.

## Keywords

None

## Version History

5.2 | Introduced

## See Also

QUERY_* Routines, READ_PNG, WRITE_PNG