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