PNGReader.st
changeset 4044 9400ab00cbfc
parent 4017 0fea2b021ca6
child 4057 d5c48c56f434
equal deleted inserted replaced
4043:d7895e68fa21 4044:9400ab00cbfc
       
     1 "{ Encoding: utf8 }"
       
     2 
     1 "
     3 "
     2  COPYRIGHT (c) 1996 by Claus Gittinger
     4  COPYRIGHT (c) 1996 by Claus Gittinger
     3               All Rights Reserved
     5               All Rights Reserved
     4 
     6 
     5  This software is furnished under a license and may be used
     7  This software is furnished under a license and may be used
    51 
    53 
    52     [caveats:]
    54     [caveats:]
    53         writer can only store mask with depth24 images (for now).
    55         writer can only store mask with depth24 images (for now).
    54         writer only generates unfiltered non-interlaced data.
    56         writer only generates unfiltered non-interlaced data.
    55         
    57         
       
    58     [Special:]
       
    59         the EnforcedImageTypeQuery is asked for;
       
    60         if #rgb is returned AND the image is rgba, then the alpha channel is ignored
       
    61         and an rgb (Depth24Image) is returned instead.
       
    62 
    56     [See also:]
    63     [See also:]
    57         Image Form Icon
    64         Image Form Icon
    58         BlitImageReader FaceReader GIFReader JPEGReader PBMReader PCXReader 
    65         BlitImageReader FaceReader GIFReader JPEGReader PBMReader PCXReader 
    59         ST80FormReader SunRasterReader TargaReader TIFFReader WindowsIconReader 
    66         ST80FormReader SunRasterReader TargaReader TIFFReader WindowsIconReader 
    60         XBMReader XPMReader XWDReader 
    67         XBMReader XPMReader XWDReader 
   524         bitsPerChannel < 8 ifTrue:[
   531         bitsPerChannel < 8 ifTrue:[
   525             'PNGReader: unsupported colorType/depth combination' infoPrintCR.
   532             'PNGReader: unsupported colorType/depth combination' infoPrintCR.
   526             ^ false.
   533             ^ false.
   527         ].
   534         ].
   528         photometric := #rgba.
   535         photometric := #rgba.
       
   536         ImageReader::EnforcedImageTypeQuery query == #rgb ifTrue:[
       
   537             photometric := #rgb
       
   538         ].
   529         samplesPerPixel := 4.
   539         samplesPerPixel := 4.
   530         bitsPerSample := Array with:bitsPerChannel with:bitsPerChannel with:bitsPerChannel with:bitsPerChannel.
   540         bitsPerSample := Array with:bitsPerChannel with:bitsPerChannel with:bitsPerChannel with:bitsPerChannel.
   531         depth := bitsPerChannel * 4.
   541         depth := bitsPerChannel * 4.
   532         ^ true.
   542         ^ true.
   533     ].
   543     ].