MacOSXIconReader.st
author Claus Gittinger <cg@exept.de>
Tue, 10 Sep 2019 09:39:06 +0200
changeset 4349 6767c83f1b0d
parent 4188 f9e164682d74
child 4377 a8225a850449
permissions -rw-r--r--
#FEATURE by exept class: MacOSXIconReader class added: #hasValidImageHeader: changed: #isValidImageFile:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4188
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
     1
"{ Encoding: utf8 }"
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
     2
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
 COPYRIGHT (c) 2013 by Claus Gittinger
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
              All Rights Reserved
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 This software is furnished under a license and may be used
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
 hereby transferred.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ Package: 'stx:libview2' }"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
3490
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
    16
"{ NameSpace: Smalltalk }"
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
    17
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
ImageReader subclass:#MacOSXIconReader
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	instanceVariableNames:'image'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	classVariableNames:''
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	poolDictionaries:''
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	category:'Graphics-Images-Readers'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!MacOSXIconReader class methodsFor:'documentation'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
copyright
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
 COPYRIGHT (c) 2013 by Claus Gittinger
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
              All Rights Reserved
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 This software is furnished under a license and may be used
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 only in accordance with the terms of that license and with the
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 be provided or otherwise made available to, or used by, any
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
 other person.  No title to or ownership of the software is
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
 hereby transferred.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
documentation
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
"
3908
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
    43
    Reader/writer for mac osx icon files.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    These files are actually bundles of a sequence of icons (in possibly different resolutions,
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    colors and sizes).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    When such a file is read, I return the first image as usual, 
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    and all images as an imagesequence.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
    50
    Only a subset of the supported image formats are supported by the writer
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
    51
    (i.e. JPEG and PNG based image encodings only). 
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
    52
    This means, that only 10.8-and later icon files are really generated.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
    53
3918
fdfdf70ba4b8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3915
diff changeset
    54
    [caveat:]
3908
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
    55
        only a subset of the possibly formats are supported.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
3918
fdfdf70ba4b8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3915
diff changeset
    57
    [notice:]
fdfdf70ba4b8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3915
diff changeset
    58
        when reading an ICNS file with multiple icons in it,
3919
180d36e00071 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3918
diff changeset
    59
        the first image is returned as such, holding on the other images in its
180d36e00071 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3918
diff changeset
    60
        imageFrames instvar.
3918
fdfdf70ba4b8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3915
diff changeset
    61
        Thus, the imageEditor will usually present the first of the images,
fdfdf70ba4b8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3915
diff changeset
    62
        and offer a next-in-sequence button to step through them.
fdfdf70ba4b8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3915
diff changeset
    63
        To get a collection of all images, collect the images from the sequence, as in:
3919
180d36e00071 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3918
diff changeset
    64
            someIcoImage imageFrames collect:#image
3918
fdfdf70ba4b8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3915
diff changeset
    65
fdfdf70ba4b8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3915
diff changeset
    66
    [supported formats:]
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
    67
    
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
    68
    support   format   length                pixels  OS-version  description
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
    69
    -----------------------------------------------------------------------------   
4188
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    70
    r           ICON    128                     32      1.0     32×32 1-bit mono icon
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    71
    r           ICN#    256                     32      6.0     32×32 1-bit mono icon with 1-bit mask
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    72
                icm#    48                      16      6.0     16×12 1 bit mono icon with 1-bit mask
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    73
                icm4    96                      16      7.0     16×12 4 bit icon
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    74
                icm8    192                     16      7.0     16×12 8 bit icon
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    75
    r           ics#    64 (32 img + 32 mask)   16      6.0     16×16 1-bit mask
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    76
    r           ics4    128                     16      7.0     16×16 4-bit icon
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
    77
    r           ics8    256                     16      7.0     16x16 8 bit icon
4188
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    78
                is32    varies (768)            16      8.5     16×16 24-bit icon
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
    79
    r           s8mk    256                     16      8.5     16x16 8-bit mask
4188
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    80
    r           icl4    512                     32      7.0     32×32 4-bit icon
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    81
    r           icl8    1,024                   32      7.0     32×32 8-bit icon
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
    82
    r           il32    varies (3,072)          32      8.5     32x32 24-bit icon
4188
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    83
    r           l8mk    1,024                   32      8.5     32×32 8-bit mask
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    84
    r           ich#    288                     48      8.5     48×48 1-bit mask
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    85
    r           ich4    1,152                   48      8.5     48×48 4-bit icon
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    86
    r           ich8    2,304                   48      8.5     48×48 8-bit icon
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    87
    r           ih32    varies (6,912)          48      8.5     48×48 24-bit icon
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    88
    r           h8mk    2,304                   48      8.5     48×48 8-bit mask
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    89
    r           it32    varies (49,152)        128     10.0    128×128 24-bit icon
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    90
    r           t8mk    16,384                 128     10.0    128×128 8-bit mask
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
    91
    r           icp4    varies                  16     10.7    16x16 icon in JPEG 2000 or PNG format
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
    92
    r           icp5    varies                  32     10.7    32x32 icon in JPEG 2000 or PNG format
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
    93
                icp6    varies                  64     10.7    64x64 icon in JPEG 2000 or PNG format
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
    94
    r           ic07    varies                 128     10.7    128x128 icon in JPEG 2000 or PNG format
4188
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    95
    r           ic08    varies                 256     10.5    256×256 icon in JPEG 2000 or PNG format
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    96
    r           ic09    varies                 512     10.5    512×512 icon in JPEG 2000 or PNG format
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
    97
    r           ic10    varies                1024     10.7    1024×1024 in 10.7 (or 512x512@2x 'retina' in 10.8) icon in JPEG 2000 or PNG format
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
    98
                ic11    varies                  32     10.8    16x16@2x 'retina' icon in JPEG 2000 or PNG format
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
    99
                ic12    varies                  64     10.8    32x32@2x 'retina' icon in JPEG 2000 or PNG format
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   100
                ic13    varies                 256     10.8    128x128@2x 'retina' icon in JPEG 2000 or PNG format
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   101
                ic14    varies                 512     10.8    256x256@2x 'retina' icon in JPEG 2000 or PNG format
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   102
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   103
     Other types (ignored):
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   104
               'TOC '   varies          'Table of Contents' 
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   105
                                        a list of all image types in the file, 
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   106
                                        and their sizes (added in Mac OS X 10.7)
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   107
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   108
                'icnV'  4               4-byte big endian float 
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   109
                                        - equal to the bundle version number of Icon Composer.app that created to icon
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   110
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    [See also:]
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
        Image Form Icon
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
        GIFReader JPEGReader PNGReader TIFFReader WindowsIconReader
3132
32f94ccd6bf0 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3121
diff changeset
   114
        http://en.wikipedia.org/wiki/Apple_Icon_Image_format
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
!MacOSXIconReader class methodsFor:'initialization'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
initialize
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
    "install myself in the Image classes fileFormat table
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
     for the `.icns' extension."
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
    "/ MIMETypes defineImageType:'image/x-icns' suffix:'icns'  reader:self.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
    MIMETypes defineImageType:nil          suffix:'icns' reader:self.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
!MacOSXIconReader class methodsFor:'testing'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
canRepresent:anImage
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
    "return true, if anImage can be represented in my file format.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
     Assuming that we store in PNG format, delegate that decision."
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
    ^ PNGReader canRepresent:anImage
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
4349
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   137
hasValidImageHeader:someHeaderBytes
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   138
    "return true, if someHeaderBytes 
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   139
     (which does not need to be the whole data, but large enough
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   140
      to detect the header) contains a valid TIFF image header"
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   141
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   142
    |id|
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   143
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   144
    id := (someHeaderBytes copyFrom:1 to:4) asString.
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   145
    ^ (id = 'icns')
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   146
!
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   147
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
isValidImageFile:aFileName
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
    "return true, if aFileName is an apple osx icon file"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
4349
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   151
    |someBytes inStream|
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
    inStream := self streamReadingFile:aFileName.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
    inStream isNil ifTrue:[^ false].
4349
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   155
    someBytes := inStream nextBytes:4.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
    inStream close.
4349
6767c83f1b0d #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 4188
diff changeset
   157
    ^ self hasValidImageHeader:someBytes
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
!MacOSXIconReader methodsFor:'image reading'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
fromStream:aStream
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
    "read a stream containing an icon image (or a collection of images).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
     Leave image description in instance variables."
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
    |sizeRemaining id img firstImage frame imageCount chunkType numChunkBytes chunkData|
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    inStream := aStream.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    aStream text.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
    "icon-files are always msb"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
    byteOrder := #msb.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
    id := aStream nextBytes:4.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
    id size ~~ 4 ifTrue:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
        ^ self fileFormatError:'not an icns file (short read)'.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
    id := id asString.
3555
7c304f9f757f #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 3490
diff changeset
   179
    sizeRemaining := aStream nextUnsignedInt32MSB:true.
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   180
    sizeRemaining := sizeRemaining - 4 - 4. "/ file magic and size are included in count
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
    (id ~= 'icns') ifTrue:[
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   183
        chunkData := aStream next:sizeRemaining.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   184
        image := self readSingleIcon:chunkType from:chunkData.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   185
        ^ self
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
    imageCount := 0.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    [ sizeRemaining > 0 ] whileTrue:[
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   190
        chunkType := aStream next:4.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
        chunkType size ~~ 4 ifTrue:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
            ^ self fileFormatError:'not an icns file (short read on icon type)'.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
        ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
        chunkType := chunkType asString.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
3555
7c304f9f757f #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 3490
diff changeset
   196
        numChunkBytes := aStream nextUnsignedInt32MSB:true.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
        numChunkBytes := numChunkBytes - 4 - 4. "/ type and size are included in count
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   199
        chunkData := aStream nextBytes:numChunkBytes.
3405
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   200
        sizeRemaining := sizeRemaining - 4 - 4 - numChunkBytes.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
        img := self readSingleIcon:chunkType from:chunkData.
3405
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   203
        "/ unsupported images are skipped...
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   204
        img notNil ifTrue:[
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   205
            imageCount == 0 ifTrue:[
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   206
                firstImage := image := img.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   207
            ] ifFalse:[
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   208
                imageCount == 1 ifTrue:[
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   209
                    imageSequence := ImageSequence new.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   210
                    img imageSequence:imageSequence.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   212
                    "/ add frame for first image.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   213
                    frame := ImageFrame new image:firstImage.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   214
                    imageSequence add:frame.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   215
                ].  
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   216
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   217
                "/ add frame for this image.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   218
                frame := ImageFrame new image:img.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
                imageSequence add:frame.
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   220
            ].
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   221
            imageCount := imageCount + 1.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
        ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
    ].
3405
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   224
    self breakPoint:#cg.
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   225
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
     Image fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
    "
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   229
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   230
    "Modified: / 22-02-2017 / 10:24:38 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
readSingleIcon:iconType from:iconBytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
    "read a single image from the inputStream."
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   236
    Logger info:'ICNSReader: read %1' with:iconType.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   237
3868
d60663c87c61 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3580
diff changeset
   238
    ^ Error handle:[:ex |
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   239
        self fileFormatError:'internal error while reading: ',iconType.
3868
d60663c87c61 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3580
diff changeset
   240
        nil
3405
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   241
    ] do:[
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   242
        |img|
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   243
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   244
        img := self 
3405
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   245
            perform:('read_',(iconType copyReplaceAny:#( $# $ ) with:$_),'_from:') asSymbol 
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   246
            with:iconBytes
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   247
            ifNotUnderstood:[
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   248
                self breakPoint:#cg.
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   249
                ('MacOSXIconReader: unsupported icon format: ',iconType) infoPrintCR.
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   250
                self fileFormatError:'unsupported icon format: ',iconType.
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   251
                nil
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   252
            ].
3911
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   253
        "/ img inspect.    
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   254
        img    
3405
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   255
    ].
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
    "
3868
d60663c87c61 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3580
diff changeset
   261
d60663c87c61 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3580
diff changeset
   262
    "Modified: / 08-02-2017 / 19:08:05 / stefan"
3911
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   263
    "Modified: / 22-02-2017 / 12:11:30 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
!MacOSXIconReader methodsFor:'image writing'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
save:anImage onStream:aStream
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
    "save an icon to aStream."
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
    self saveAll:(Array with:anImage) onStream:aStream.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
     self 
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
        save:(Image fromScreen:(0@0 corner:16@16))
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
        onFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
saveAll:aCollectionOfImages onStream:aStream
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
    "save a number of images to aStream."
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
3490
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
   283
    |tempStream|
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
    (aCollectionOfImages conform:
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
        [:eachImage |
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
            (eachImage width = eachImage height)
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
   288
            and:[ (#(16 32 64 128 256 512 1024) includes:eachImage width)]
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
        ]
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
    ) ifFalse:[
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
   291
        ^ self fileFormatError:'unsupported image size (must be square and width 16, 32, 64, 128, 512 or 1024)'.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
3490
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
   294
    tempStream := ReadWriteStream on:(ByteArray new:1024).
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
    aCollectionOfImages do:[:eachImage |
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
        |typeCode s data|
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
        s := WriteStream on:(ByteArray new:1024).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
        PNGReader save:eachImage onStream:s.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
        data := s contents.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
        self assert:data notEmptyOrNil.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
   304
        typeCode := #(16 32 64 128 256 512 1024) 
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
   305
                    map: #('ipc4' 'ipc5' 'ipc6' 'ic07' 'ic08' 'ic09' 'ic10')
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
                    at:eachImage width ifAbsent:[self error]. 
3490
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
   307
        tempStream
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
   308
            nextPutBytes:typeCode;
3555
7c304f9f757f #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 3490
diff changeset
   309
            nextPutInt32:(data size + 4 + 4) MSB:true;
3490
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
   310
            nextPutAll:data.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
3490
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
   313
    aStream 
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
   314
        binary;
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
   315
        nextPutBytes:'icns';
3555
7c304f9f757f #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 3490
diff changeset
   316
        nextPutInt32:(tempStream position + 4 + 4) MSB:true;
3490
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
   317
        nextPutAll:(tempStream contents).
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   319
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
     self 
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
        save:(Image fromScreen:(0@0 corner:16@16))
3908
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   322
        onFile:'test.icns'.
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   323
        
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   324
     'test.icns' asFilename exists.
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   325
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   326
     Image fromFile:'test.icns'
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   327
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   328
     ImageSequence
3908
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   329
     MacOSXIconReader
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   330
         saveAll:{
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   331
                    (Image fromScreen:(0@0 corner:16@16)) .
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   332
                    (Image fromScreen:(0@0 corner:32@32)) .
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   333
                    (Image fromScreen:(0@0 corner:64@64)) .
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   334
                    (Image fromScreen:(0@0 corner:128@128)) .
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   335
                 }
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   336
         onFile:'test.icns'   
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
    "
3908
366f0a76e9e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   338
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
   339
    "Modified: / 22-02-2017 / 12:16:07 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
!MacOSXIconReader methodsFor:'private'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   344
colormap4
3135
d44d3026a693 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3134
diff changeset
   345
    ^ #[
3134
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   346
           16rFF 16rFF 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   347
           16rFC 16rF3 16r05
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   348
           16rFF 16r64 16r02
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   349
           16rDD 16r08 16r06
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   350
           16rF2 16r08 16r84
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   351
           16r46 16r00 16rA5
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   352
           16r00 16r00 16rD4
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   353
           16r02 16rAB 16rEA
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   354
           16r1F 16rB7 16r14
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   355
           16r00 16r64 16r11
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   356
           16r56 16r2C 16r05
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   357
           16r90 16r71 16r3A
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   358
           16rC0 16rC0 16rC0
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   359
           16r80 16r80 16r80
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   360
           16r40 16r40 16r40
3135
d44d3026a693 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3134
diff changeset
   361
           16r00 16r00 16r00
d44d3026a693 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3134
diff changeset
   362
    ]
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   363
!
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   364
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   365
colormap8
3135
d44d3026a693 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3134
diff changeset
   366
    ^ #[
3134
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   367
           16rFF 16rFF 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   368
           16rFF 16rFF 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   369
           16rFF 16rFF 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   370
           16rFF 16rFF 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   371
           16rFF 16rFF 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   372
           16rFF 16rFF 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   373
           16rFF 16rCC 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   374
           16rFF 16rCC 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   375
           16rFF 16rCC 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   376
           16rFF 16rCC 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   377
           16rFF 16rCC 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   378
           16rFF 16rCC 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   379
           16rFF 16r99 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   380
           16rFF 16r99 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   381
           16rFF 16r99 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   382
           16rFF 16r99 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   383
           16rFF 16r99 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   384
           16rFF 16r99 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   385
           16rFF 16r66 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   386
           16rFF 16r66 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   387
           16rFF 16r66 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   388
           16rFF 16r66 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   389
           16rFF 16r66 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   390
           16rFF 16r66 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   391
           16rFF 16r33 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   392
           16rFF 16r33 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   393
           16rFF 16r33 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   394
           16rFF 16r33 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   395
           16rFF 16r33 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   396
           16rFF 16r33 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   397
           16rFF 16r00 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   398
           16rFF 16r00 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   399
           16rFF 16r00 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   400
           16rFF 16r00 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   401
           16rFF 16r00 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   402
           16rFF 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   403
           16rCC 16rFF 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   404
           16rCC 16rFF 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   405
           16rCC 16rFF 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   406
           16rCC 16rFF 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   407
           16rCC 16rFF 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   408
           16rCC 16rFF 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   409
           16rCC 16rCC 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   410
           16rCC 16rCC 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   411
           16rCC 16rCC 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   412
           16rCC 16rCC 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   413
           16rCC 16rCC 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   414
           16rCC 16rCC 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   415
           16rCC 16r99 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   416
           16rCC 16r99 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   417
           16rCC 16r99 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   418
           16rCC 16r99 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   419
           16rCC 16r99 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   420
           16rCC 16r99 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   421
           16rCC 16r66 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   422
           16rCC 16r66 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   423
           16rCC 16r66 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   424
           16rCC 16r66 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   425
           16rCC 16r66 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   426
           16rCC 16r66 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   427
           16rCC 16r33 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   428
           16rCC 16r33 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   429
           16rCC 16r33 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   430
           16rCC 16r33 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   431
           16rCC 16r33 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   432
           16rCC 16r33 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   433
           16rCC 16r00 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   434
           16rCC 16r00 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   435
           16rCC 16r00 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   436
           16rCC 16r00 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   437
           16rCC 16r00 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   438
           16rCC 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   439
           16r99 16rFF 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   440
           16r99 16rFF 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   441
           16r99 16rFF 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   442
           16r99 16rFF 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   443
           16r99 16rFF 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   444
           16r99 16rFF 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   445
           16r99 16rCC 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   446
           16r99 16rCC 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   447
           16r99 16rCC 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   448
           16r99 16rCC 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   449
           16r99 16rCC 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   450
           16r99 16rCC 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   451
           16r99 16r99 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   452
           16r99 16r99 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   453
           16r99 16r99 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   454
           16r99 16r99 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   455
           16r99 16r99 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   456
           16r99 16r99 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   457
           16r99 16r66 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   458
           16r99 16r66 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   459
           16r99 16r66 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   460
           16r99 16r66 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   461
           16r99 16r66 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   462
           16r99 16r66 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   463
           16r99 16r33 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   464
           16r99 16r33 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   465
           16r99 16r33 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   466
           16r99 16r33 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   467
           16r99 16r33 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   468
           16r99 16r33 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   469
           16r99 16r00 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   470
           16r99 16r00 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   471
           16r99 16r00 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   472
           16r99 16r00 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   473
           16r99 16r00 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   474
           16r99 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   475
           16r66 16rFF 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   476
           16r66 16rFF 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   477
           16r66 16rFF 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   478
           16r66 16rFF 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   479
           16r66 16rFF 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   480
           16r66 16rFF 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   481
           16r66 16rCC 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   482
           16r66 16rCC 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   483
           16r66 16rCC 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   484
           16r66 16rCC 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   485
           16r66 16rCC 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   486
           16r66 16rCC 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   487
           16r66 16r99 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   488
           16r66 16r99 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   489
           16r66 16r99 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   490
           16r66 16r99 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   491
           16r66 16r99 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   492
           16r66 16r99 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   493
           16r66 16r66 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   494
           16r66 16r66 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   495
           16r66 16r66 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   496
           16r66 16r66 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   497
           16r66 16r66 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   498
           16r66 16r66 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   499
           16r66 16r33 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   500
           16r66 16r33 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   501
           16r66 16r33 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   502
           16r66 16r33 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   503
           16r66 16r33 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   504
           16r66 16r33 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   505
           16r66 16r00 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   506
           16r66 16r00 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   507
           16r66 16r00 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   508
           16r66 16r00 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   509
           16r66 16r00 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   510
           16r66 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   511
           16r33 16rFF 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   512
           16r33 16rFF 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   513
           16r33 16rFF 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   514
           16r33 16rFF 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   515
           16r33 16rFF 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   516
           16r33 16rFF 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   517
           16r33 16rCC 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   518
           16r33 16rCC 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   519
           16r33 16rCC 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   520
           16r33 16rCC 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   521
           16r33 16rCC 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   522
           16r33 16rCC 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   523
           16r33 16r99 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   524
           16r33 16r99 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   525
           16r33 16r99 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   526
           16r33 16r99 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   527
           16r33 16r99 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   528
           16r33 16r99 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   529
           16r33 16r66 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   530
           16r33 16r66 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   531
           16r33 16r66 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   532
           16r33 16r66 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   533
           16r33 16r66 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   534
           16r33 16r66 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   535
           16r33 16r33 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   536
           16r33 16r33 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   537
           16r33 16r33 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   538
           16r33 16r33 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   539
           16r33 16r33 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   540
           16r33 16r33 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   541
           16r33 16r00 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   542
           16r33 16r00 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   543
           16r33 16r00 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   544
           16r33 16r00 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   545
           16r33 16r00 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   546
           16r33 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   547
           16r00 16rFF 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   548
           16r00 16rFF 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   549
           16r00 16rFF 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   550
           16r00 16rFF 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   551
           16r00 16rFF 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   552
           16r00 16rFF 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   553
           16r00 16rCC 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   554
           16r00 16rCC 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   555
           16r00 16rCC 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   556
           16r00 16rCC 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   557
           16r00 16rCC 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   558
           16r00 16rCC 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   559
           16r00 16r99 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   560
           16r00 16r99 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   561
           16r00 16r99 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   562
           16r00 16r99 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   563
           16r00 16r99 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   564
           16r00 16r99 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   565
           16r00 16r66 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   566
           16r00 16r66 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   567
           16r00 16r66 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   568
           16r00 16r66 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   569
           16r00 16r66 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   570
           16r00 16r66 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   571
           16r00 16r33 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   572
           16r00 16r33 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   573
           16r00 16r33 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   574
           16r00 16r33 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   575
           16r00 16r33 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   576
           16r00 16r33 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   577
           16r00 16r00 16rFF
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   578
           16r00 16r00 16rCC
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   579
           16r00 16r00 16r99
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   580
           16r00 16r00 16r66
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   581
           16r00 16r00 16r33
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   582
           16rEE 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   583
           16rDD 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   584
           16rBB 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   585
           16rAA 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   586
           16r88 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   587
           16r77 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   588
           16r55 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   589
           16r44 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   590
           16r22 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   591
           16r11 16r00 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   592
           16r00 16rEE 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   593
           16r00 16rDD 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   594
           16r00 16rBB 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   595
           16r00 16rAA 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   596
           16r00 16r88 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   597
           16r00 16r77 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   598
           16r00 16r55 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   599
           16r00 16r44 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   600
           16r00 16r22 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   601
           16r00 16r11 16r00
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   602
           16r00 16r00 16rEE
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   603
           16r00 16r00 16rDD
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   604
           16r00 16r00 16rBB
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   605
           16r00 16r00 16rAA
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   606
           16r00 16r00 16r88
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   607
           16r00 16r00 16r77
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   608
           16r00 16r00 16r55
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   609
           16r00 16r00 16r44
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   610
           16r00 16r00 16r22
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   611
           16r00 16r00 16r11
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   612
           16rEE 16rEE 16rEE
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   613
           16rDD 16rDD 16rDD
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   614
           16rBB 16rBB 16rBB
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   615
           16rAA 16rAA 16rAA
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   616
           16r88 16r88 16r88
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   617
           16r77 16r77 16r77
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   618
           16r55 16r55 16r55
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   619
           16r44 16r44 16r44
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   620
           16r22 16r22 16r22
e5600800caff class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3133
diff changeset
   621
           16r11 16r11 16r11
3135
d44d3026a693 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3134
diff changeset
   622
           16r00 16r00 16r00
d44d3026a693 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3134
diff changeset
   623
    ]
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   624
!
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   625
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   626
makeImage
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   627
    "image is already made"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   628
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   629
    ^ image
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   630
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   631
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   632
!MacOSXIconReader methodsFor:'private reading'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   633
3361
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   634
common_read_paletteImage_from:bytes size:size width:w height:h depth:d
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   635
    "read an icl8/icl4/ics4/ics8 icon"
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   636
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   637
    |pixelData img|
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   638
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   639
    pixelData := (ByteArray new:size) replaceBytesWith:bytes; yourself.
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   640
    img := (Image implementorForDepth:d) width:w height:h fromArray:pixelData.
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   641
    img photometric:#palette.
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   642
    d == 4 ifTrue:[ 
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   643
        img colorMap:(Colormap rgbBytesVector:self colormap4).
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   644
    ] ifFalse:[ 
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   645
        d == 8 ifTrue:[ 
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   646
            img colorMap:(Colormap rgbBytesVector:self colormap8).
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   647
        ] ifFalse:[ 
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   648
            self error:'unsupported depth'
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   649
        ].
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   650
    ].
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   651
    ^ img
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   652
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   653
    "
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   654
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
3911
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   655
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/html.icns'
3361
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   656
    "
3911
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   657
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   658
    "Modified (comment): / 22-02-2017 / 12:09:40 / cg"
3361
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   659
!
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   660
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   661
readPNGOrJPEGFrom:bytes expectedSize:expectedSizeOrNil
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   662
    "read a PNG or JPEG image.
4188
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
   663
     Helper for ipc4, ipc5, ipc6, ic07, ic09, ic10 formats"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   664
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   665
    |img|
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   666
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   667
    "/ check for PNG header
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   668
    (bytes startsWith:(PNGReader pngHeader)) ifTrue:[
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   669
        img := PNGReader fromStream:(bytes readStream).
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   670
    ].    
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   671
    img isNil ifTrue:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   672
        img := JPEGReader fromStream:(bytes readStream).
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
   673
        img isNil ifTrue:[^ nil].
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   674
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   675
    expectedSizeOrNil notNil ifTrue:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   676
        self assert:(img width = expectedSizeOrNil).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   677
        self assert:(img height = expectedSizeOrNil).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   678
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   679
    ^ img
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   680
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
   681
    "Modified: / 22-02-2017 / 13:42:48 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   682
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   683
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   684
readPackBitsImageFrom:compressedData offset:offset width:w height:h depth:depth
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   685
    |uncompressed redData greenData blueData bytesPerRow bytesPerChannel n srcStart rowStart|
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   686
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   687
    uncompressed := (compressedData size - offset) >= (w*h*(depth//8)).
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   688
    
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   689
    depth == 24 ifTrue:[
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   690
        "/ rgb channels separate
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   691
        bytesPerRow := w.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   692
        bytesPerChannel := bytesPerRow * h.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   693
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   694
        redData := ByteArray new:bytesPerChannel.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   695
        greenData := ByteArray new:bytesPerChannel.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   696
        blueData := ByteArray new:bytesPerChannel.
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   697
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   698
        "/ uncompressed!!
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   699
        uncompressed ifTrue:[
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   700
            self halt:'check this'.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   701
            ^ nil
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   702
        ].
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   703
        
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   704
        srcStart := 1+offset.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   705
        n := self class
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   706
            decompressPackBitsV2From:compressedData at:srcStart to:redData at:1 count:bytesPerChannel.
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   707
        srcStart := srcStart + n.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   708
        n := self class
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   709
            decompressPackBitsV2From:compressedData at:srcStart to:greenData at:1 count:bytesPerChannel.
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   710
        srcStart := srcStart + n.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   711
        n := self class
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   712
            decompressPackBitsV2From:compressedData at:srcStart to:blueData at:1 count:bytesPerChannel.
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   713
        photometric := #rgb.
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   714
        bitsPerSample := #[8 8 8].
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   715
        samplesPerPixel := 3.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   716
        width := w.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   717
        height := h.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   718
        data := ByteArray new:(self bytesPerRow * h).
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   719
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   720
        rowStart := 1.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   721
        1 to:height do:[:r |
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   722
            |ci|
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   723
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   724
            ci := rowStart.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   725
            1 to:width do:[:c |
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   726
                data at:ci put:(redData at:c).
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   727
                data at:ci+1 put:(greenData at:c).
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   728
                data at:ci+2 put:(blueData at:c).
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   729
                ci := ci + 3.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   730
            ].
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   731
            rowStart := rowStart + self bytesPerRow.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   732
        ].
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   733
        ^ Depth24Image new
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   734
            width:width
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   735
            height:height
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   736
            photometric:photometric
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   737
            samplesPerPixel:samplesPerPixel
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   738
            bitsPerSample:bitsPerSample
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   739
            colorMap:nil
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   740
            bits:data
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   741
            mask:nil.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   742
    ].
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   743
    
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   744
    depth == 8 ifTrue:[
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   745
        "/ 8bit single channel
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   746
        bytesPerRow := w.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   747
        bytesPerChannel := bytesPerRow * h.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   748
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   749
        compressedData size == bytesPerChannel ifTrue:[
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   750
            data := compressedData.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   751
        ] ifFalse:[
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   752
            data := ByteArray new:bytesPerChannel.
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   753
            n := self class
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   754
                decompressPackBitsV2From:compressedData at:1+offset to:data at:1 count:bytesPerChannel.
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   755
        ].
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   756
        ^ Depth8Image new
3580
2bf7c5d62cf6 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3555
diff changeset
   757
            width:width height:height
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   758
            photometric:#blackIs0
3580
2bf7c5d62cf6 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3555
diff changeset
   759
            samplesPerPixel:1 bitsPerSample:#(8)
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   760
            colorMap:nil
3580
2bf7c5d62cf6 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3555
diff changeset
   761
            bits:data mask:nil.
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   762
    ].
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   763
    self halt:'check this'.
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   764
    ^ nil
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   765
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   766
    "Modified: / 22-02-2017 / 12:06:14 / cg"
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   767
!
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   768
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   769
read_ICN__from:bytes
3405
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   770
    "read an ICN# format icon.
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   771
     ICN# is 32x32 bit mono with 1-bit mask"
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   772
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   773
    |pixelData maskData img|
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   774
3405
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   775
    pixelData := (ByteArray new:128) replaceBytesFrom:1 to:128 with:bytes startingAt:1; yourself.
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   776
    maskData := (ByteArray new:128) replaceBytesFrom:1 to:128 with:bytes startingAt:128+1; yourself.
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   777
    img := Depth1Image width:32 height:32 fromArray:pixelData.
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   778
    img mask:(Depth1Image width:32 height:32 fromArray:maskData).
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   779
    ^ img
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   780
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   781
3362
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   782
read_ICON_from:bytes
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   783
    "read an ICON format icon.
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   784
     128 bytes, 32x32x1 monochrome"
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   785
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   786
    |pixelData img|
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   787
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   788
    pixelData := (ByteArray new:128) replaceBytesFrom:1 to:128 with:bytes startingAt:1; yourself.
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   789
    img := Depth1Image width:32 height:32 fromArray:pixelData.
3363
26f61d3e0bb9 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3362
diff changeset
   790
    img photometric:#whiteIs0.
3362
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   791
    ^ img
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   792
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   793
    "
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   794
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   795
    "
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   796
!
84da5a3c2e27 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3361
diff changeset
   797
3405
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   798
read_TOC__from:bytes
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   799
    "read (actually: skip) a table of contents."
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   800
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   801
    ^ nil
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   802
!
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   803
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   804
read_h8mk_from:bytes
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   805
    "read an h8mk packbits format mask icon"
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   806
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   807
    |offset|
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   808
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   809
    offset := 0.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   810
    (bytes from:1 to:4) = #[0 0 0 0] ifTrue:[
3934
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   811
        self breakPoint:#cg.
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   812
        offset := 4.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   813
    ].    
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   814
    ^ self readPackBitsImageFrom:bytes asByteArray offset:offset width:48 height:48 depth:8.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   815
3934
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   816
    "Modified: / 24-02-2017 / 01:39:56 / cg"
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   817
!
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
   818
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   819
read_ic07_from:bytes
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   820
    "read an ic07 (PNG or JPEG, 128x128) format icon"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   821
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   822
    ^ self readPNGOrJPEGFrom:bytes expectedSize:128.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   823
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   824
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   825
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   826
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   827
    "
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   828
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   829
    "Modified (comment): / 22-02-2017 / 11:02:50 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   830
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   831
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   832
read_ic08_from:bytes
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   833
    "read an ic08 (PNG or JPEG, 256x256) format icon"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   834
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   835
    ^ self readPNGOrJPEGFrom:bytes expectedSize:256.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   836
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   837
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   838
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   839
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   840
    "
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   841
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   842
    "Modified (comment): / 22-02-2017 / 11:02:55 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   843
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   844
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   845
read_ic09_from:bytes
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   846
    "read an ic09 (PNG or JPEG, 512x512) format icon"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   847
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   848
    ^ self readPNGOrJPEGFrom:bytes expectedSize:512.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   849
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   850
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   851
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   852
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   853
    "
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   854
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   855
    "Modified (comment): / 22-02-2017 / 11:03:00 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   856
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   857
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   858
read_ic10_from:bytes
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   859
    "read an ic10 (PNG or JPEG, 1024x1024) format icon"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   860
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   861
    ^ self readPNGOrJPEGFrom:bytes expectedSize:1024.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   862
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   863
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   864
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   865
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   866
    "
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   867
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   868
    "Modified (comment): / 22-02-2017 / 11:03:05 / cg"
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   869
!
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   870
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   871
read_ic11_from:bytes
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   872
    "read an ic11 (PNG or JPEG, 32x32) format icon"
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   873
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   874
    ^ self readPNGOrJPEGFrom:bytes expectedSize:32.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   875
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   876
    "
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   877
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   878
     self fromFile:'test.icns'
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   879
    "
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   880
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
   881
    "Created: / 22-02-2017 / 11:04:18 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   882
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   883
3911
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   884
read_ic12_from:bytes
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   885
    "read an ic12 (PNG or JPEG, 64) format icon"
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   886
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   887
    ^ self readPNGOrJPEGFrom:bytes expectedSize:64.
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   888
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   889
    "
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   890
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   891
    "
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   892
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   893
    "Created: / 22-02-2017 / 12:10:10 / cg"
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   894
!
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   895
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   896
read_ic13_from:bytes
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   897
    "read an ic12 (PNG or JPEG, 256x256) format icon"
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   898
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   899
    ^ self readPNGOrJPEGFrom:bytes expectedSize:256.
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   900
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   901
    "
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   902
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   903
    "
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   904
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   905
    "Created: / 22-02-2017 / 12:11:06 / cg"
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   906
!
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   907
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   908
read_ic14_from:bytes
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   909
    "read an ic12 (PNG or JPEG, 512x512) format icon"
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   910
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   911
    ^ self readPNGOrJPEGFrom:bytes expectedSize:512.
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   912
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   913
    "
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   914
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   915
    "
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   916
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   917
    "Created: / 22-02-2017 / 12:13:59 / cg"
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   918
!
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   919
3361
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   920
read_ich4_from:bytes
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   921
    "read an ich4 format icon;
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   922
     1152 bytes; 48x48x4bit"
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   923
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   924
    ^ self common_read_paletteImage_from:bytes size:1152 width:48 height:48 depth:4
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   925
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   926
    "
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   927
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   928
    "
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   929
!
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   930
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   931
read_ich8_from:bytes
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   932
    "read an ich8 format icon;
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   933
     2304 bytes; 48x48x8bit"
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   934
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   935
    ^ self common_read_paletteImage_from:bytes size:2304 width:48 height:48 depth:8
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   936
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   937
    "
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   938
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   939
    "
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   940
!
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   941
3405
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   942
read_ich__from:bytes
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   943
    "read an ich# format icon.
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   944
     ich# is 288+288 bytes, 48x48x1 monochrome + mask"
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   945
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   946
    |pixelData maskData img|
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   947
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   948
    pixelData := (ByteArray new:288) replaceBytesFrom:1 to:288 with:bytes startingAt:1; yourself.
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   949
    maskData := (ByteArray new:288) replaceBytesFrom:1 to:288 with:bytes startingAt:288+1; yourself.
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   950
    img := Depth1Image width:48 height:48 fromArray:pixelData.
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   951
    img mask:(Depth1Image width:48 height:48 fromArray:maskData).
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   952
    ^ img
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   953
!
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
   954
3361
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   955
read_icl4_from:bytes
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   956
    "read an icl4 format icon;
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   957
     512 bytes; 32x32x4bit"
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   958
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   959
    ^ self common_read_paletteImage_from:bytes size:512 width:32 height:32 depth:4
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   960
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   961
    "
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   962
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   963
    "
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   964
!
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   965
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   966
read_icl8_from:bytes
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   967
    "read an icl8 format icon;
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   968
     1024 bytes; 32x32x8bit"
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   969
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   970
    ^ self common_read_paletteImage_from:bytes size:1024 width:32 height:32 depth:8
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   971
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   972
    "
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   973
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   974
    "
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   975
!
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
   976
3934
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   977
read_icm4_from:bytes
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   978
    "read (actually: skip) an icm4 record."
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   979
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   980
    self breakPoint:#cg.
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   981
    ^ nil
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   982
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   983
    "Created: / 24-02-2017 / 01:40:13 / cg"
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   984
!
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   985
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   986
read_icm8_from:bytes
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   987
    "read (actually: skip) an icm8 record."
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   988
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   989
    self breakPoint:#cg.
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   990
    ^ nil
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   991
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   992
    "Created: / 24-02-2017 / 01:40:23 / cg"
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   993
!
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   994
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   995
read_icm__from:bytes
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   996
    "read (actually: skip) an icm# record."
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   997
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   998
    self breakPoint:#cg.
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
   999
    ^ nil
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1000
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1001
    "Created: / 24-02-2017 / 01:39:43 / cg"
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1002
!
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1003
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1004
read_icnV_from:bytes
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1005
    "read (actually: skip) an icnV record."
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1006
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1007
    self breakPoint:#cg.
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1008
    ^ nil
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1009
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1010
    "Created: / 24-02-2017 / 01:43:21 / cg"
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1011
!
993f8921185d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3933
diff changeset
  1012
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1013
read_icp4_from:bytes
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1014
    "read an ipc4 (PNG or JPEG, 16x16) format icon"
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1015
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1016
    ^ self readPNGOrJPEGFrom:bytes expectedSize:16.
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1017
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1018
    "
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1019
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1020
     self fromFile:'test.icns'
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1021
    "
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1022
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1023
    "Created: / 22-02-2017 / 12:18:02 / cg"
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1024
!
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1025
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1026
read_icp5_from:bytes
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1027
    "read an ipc5 (PNG or JPEG, 32x32) format icon"
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1028
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1029
    ^ self readPNGOrJPEGFrom:bytes expectedSize:32.
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1030
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1031
    "
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1032
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1033
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/html.icns'
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1034
     self fromFile:'test.icns'
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1035
     
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1036
     '/Applications' asFilename recursiveDirectoryContentsAsFilenamesDo:[:each |
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1037
         (each hasSuffix:'icns') ifTrue:[
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1038
             Transcript showCR:'reading ',each pathName.
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1039
             self fromFile:each.
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1040
         ] 
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1041
     ] 
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1042
    "
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1043
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1044
    "Created: / 22-02-2017 / 12:18:07 / cg"
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1045
!
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1046
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1047
read_icp6_from:bytes
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1048
    "read an ipc6 (PNG or JPEG, 64x64) format icon"
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1049
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1050
    ^ self readPNGOrJPEGFrom:bytes expectedSize:64.
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1051
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1052
    "
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1053
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
4188
f9e164682d74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 3937
diff changeset
  1054
     self fromFile:'../../../exept/expecco/application/osx/expecco.icns'
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1055
     self fromFile:'test.icns'
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1056
    "
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1057
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1058
    "Created: / 22-02-2017 / 12:17:52 / cg"
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1059
!
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1060
3361
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  1061
read_ics4_from:bytes
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  1062
    "read an ics4 format icon.
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  1063
     128 bytes, 16x16x4bit"
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  1064
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  1065
    ^ self common_read_paletteImage_from:bytes size:128 width:16 height:16 depth:4
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1066
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1067
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1068
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1069
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1070
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1071
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1072
read_ics8_from:bytes
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
  1073
    "read an ics8 format icon.
3361
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  1074
     256 bytes, 16x16x8bit"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1075
3361
e0a2c0425a2c class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  1076
    ^ self common_read_paletteImage_from:bytes size:256 width:16 height:16 depth:8
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1077
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1078
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1079
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1080
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1081
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1082
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1083
read_ics__from:bytes
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
  1084
    "read an ics# format icon.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
  1085
     ics# is 64 bytes, 16x16x1 monochrome + mask"
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
  1086
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
  1087
    |pixelData maskData img|
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1088
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
  1089
    pixelData := (ByteArray new:32) replaceBytesFrom:1 to:32 with:bytes startingAt:1; yourself.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
  1090
    maskData := (ByteArray new:32) replaceBytesFrom:1 to:32 with:bytes startingAt:32+1; yourself.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
  1091
    img := Depth1Image width:16 height:16 fromArray:pixelData.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
  1092
    img mask:(Depth1Image width:16 height:16 fromArray:maskData).
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
  1093
    ^ img
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1094
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1095
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1096
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1097
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1098
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1099
3933
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1100
read_icsb_from:bytes
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1101
    "read (actually: skip) an icsb record."
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1102
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1103
    self breakPoint:#cg.
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1104
    ^ nil
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1105
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1106
    "Created: / 24-02-2017 / 01:21:24 / cg"
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1107
!
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1108
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1109
read_icsd_from:bytes
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1110
    "read (actually: skip) an icsd record."
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1111
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1112
    self breakPoint:#cg.
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1113
    ^ nil
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1114
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1115
    "Created: / 24-02-2017 / 01:36:21 / cg"
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1116
!
b4af58284a84 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3919
diff changeset
  1117
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
  1118
read_ih32_from:bytes
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1119
    "read an ih32 packbits format 48x48x24 icon "
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1120
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1121
    |offset|
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1122
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1123
    offset := 0.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1124
    (bytes from:1 to:4) = #[0 0 0 0] ifTrue:[
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1125
        self halt.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1126
        offset := 4.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1127
    ].    
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1128
    ^ self readPackBitsImageFrom:bytes asByteArray offset:offset width:48 height:48 depth:24.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1129
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1130
    "Modified (comment): / 22-02-2017 / 10:58:51 / cg"
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
  1131
!
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1132
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
  1133
read_il32_from:bytes
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1134
    "read an il32 packbits format 32x32x24 icon"
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1135
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1136
    |offset|
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
  1137
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1138
    offset := 0.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1139
    (bytes from:1 to:4) = #[0 0 0 0] ifTrue:[
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1140
        self halt.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1141
        offset := 4.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1142
    ].    
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1143
    ^ self readPackBitsImageFrom:bytes asByteArray offset:offset width:32 height:32 depth:24.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1144
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1145
    "Modified (comment): / 22-02-2017 / 10:59:19 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1146
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1147
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1148
read_ipc4_from:bytes
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1149
    <resource: #obsolete>
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1150
    "read an ipc4 (PNG or JPEG, 16x16) format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1151
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1152
    ^ self readPNGOrJPEGFrom:bytes expectedSize:16.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1153
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1154
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1155
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1156
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1157
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1158
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1159
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1160
read_ipc5_from:bytes
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1161
    <resource: #obsolete>
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1162
    "read an ipc5 (PNG or JPEG, 32x32) format icon"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1163
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1164
    ^ self readPNGOrJPEGFrom:bytes expectedSize:32.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1165
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1166
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1167
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1168
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1169
    "
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1170
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1171
    "Modified (comment): / 22-02-2017 / 11:02:44 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1172
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1173
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1174
read_ipc6_from:bytes
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1175
    <resource: #obsolete>
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1176
    "read an ipc6 (PNG or JPEG, 64x64) format icon"
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1177
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1178
    ^ self readPNGOrJPEGFrom:bytes expectedSize:64.
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1179
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1180
    "
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1181
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1182
     self fromFile:'test.icns'
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1183
    "
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1184
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1185
    "Created: / 22-02-2017 / 12:16:33 / cg"
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1186
!
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1187
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1188
read_is32_from:bytes
3405
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
  1189
    "read an is32 packbits format 16x16x24 icon"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1190
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1191
    |offset|
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1192
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1193
    offset := 0.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1194
    (bytes from:1 to:4) = #[0 0 0 0] ifTrue:[
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1195
        self halt.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1196
        offset := 4.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1197
    ].    
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1198
    ^ self readPackBitsImageFrom:bytes asByteArray offset:offset width:16 height:16 depth:24.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1199
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1200
    "Modified: / 22-02-2017 / 10:32:25 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1201
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1202
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1203
read_it32_from:bytes
3405
20506fdebee7 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3381
diff changeset
  1204
    "read an it32 packbits format 128x128x24 icon"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1205
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1206
    |offset|
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1207
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1208
    offset := 0.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1209
    (bytes from:1 to:4) = #[0 0 0 0] ifTrue:[
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1210
        "/ self halt.
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1211
        offset := 4.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1212
    ].    
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1213
    ^ self readPackBitsImageFrom:bytes asByteArray offset:offset width:128 height:128 depth:24.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1214
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1215
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1216
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1217
    "
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1218
3915
de91d3d26af1 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3911
diff changeset
  1219
    "Modified: / 22-02-2017 / 12:19:56 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1220
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1221
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1222
read_l8mk_from:bytes
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
  1223
    "read an l8mk packbits format mask icon"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1224
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1225
    |offset|
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1226
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1227
    offset := 0.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1228
    (bytes from:1 to:4) = #[0 0 0 0] ifTrue:[
3911
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
  1229
        "/ self halt.
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1230
        offset := 4.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1231
    ].    
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1232
    ^ self readPackBitsImageFrom:bytes asByteArray offset:offset width:32 height:32 depth:8.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1233
3911
57fffd545c0b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
  1234
    "Modified: / 22-02-2017 / 12:08:08 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1235
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1236
3937
95c7ec9f0a7e #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3934
diff changeset
  1237
read_name_from:bytes
95c7ec9f0a7e #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3934
diff changeset
  1238
    "read (actually: skip) a name entry."
95c7ec9f0a7e #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3934
diff changeset
  1239
95c7ec9f0a7e #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3934
diff changeset
  1240
    ^ nil
95c7ec9f0a7e #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3934
diff changeset
  1241
95c7ec9f0a7e #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3934
diff changeset
  1242
    "Created: / 28-02-2017 / 12:47:27 / cg"
95c7ec9f0a7e #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3934
diff changeset
  1243
!
95c7ec9f0a7e #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3934
diff changeset
  1244
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1245
read_s8mk_from:bytes
3381
5166ef7c73b3 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3363
diff changeset
  1246
    "read an s8mk packbits format mask icon"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1247
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1248
    |offset|
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1249
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1250
    offset := 0.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1251
    (bytes from:1 to:4) = #[0 0 0 0] ifTrue:[
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1252
        offset := 4.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1253
    ].    
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1254
    ^ self readPackBitsImageFrom:bytes asByteArray offset:offset width:16 height:16 depth:8.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1255
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1256
    "Modified: / 22-02-2017 / 10:34:46 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1257
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1258
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1259
read_t8mk_from:bytes
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1260
    "read an t8mk 128x128x8 mask icon"
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1261
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1262
    |img|
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1263
3910
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1264
    self assert:(bytes size == (128*128)).
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1265
    img := Depth8Image width:128 height:128 fromArray:bytes.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1266
    img photometric:#whiteIs0.
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1267
    ^ img
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1268
553aa2bad2e0 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3908
diff changeset
  1269
    "Modified (comment): / 22-02-2017 / 12:00:50 / cg"
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1270
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1271
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1272
!MacOSXIconReader class methodsFor:'documentation'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1273
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1274
version
3490
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
  1275
    ^ '$Header$'
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1276
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1277
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1278
version_CVS
3490
5492e5b06400 class: MacOSXIconReader
Stefan Vogel <sv@exept.de>
parents: 3405
diff changeset
  1279
    ^ '$Header$'
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1280
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1281
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1282
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1283
MacOSXIconReader initialize!