Hi Stef, because this method can be called from Form class >> #fromFileNamed: and can work in case you use native binary Form representation.
Any idea how to solve it in more cleaner way? Cheers, -- Pavel On Wed, Nov 21, 2012 at 2:50 PM, Stéphane Ducasse <stephane.duca...@inria.fr> wrote: > Pavel > > why not moving this class on the ImageWriter package > because > - I do not like this Smalltalk globals at: ifPresent: > especially when there is no default. > > - This method does not make sense without the ImageReadWriter > > > Form classSide>>fromBinaryStream: (in category 'instance creation') > -----fromBinaryStream: aBinaryStream > "Read a Form or ColorForm from given file, using the first byte of > the file to guess its format. Currently handles: GIF, uncompressed BMP, and > both old and new DisplayObject writeOn: formats, JPEG, and PCX. Return nil if > the file could not be read or was of an unrecognized format." > > | firstByte | > aBinaryStream binary. > firstByte := aBinaryStream next. > firstByte = 1 ifTrue: [ > "old Squeakform format" > ^ self new readFromOldFormat: aBinaryStream]. > firstByte = 2 ifTrue: [ > "new Squeak form format" > ^ self new readFrom: aBinaryStream]. > > "Try for JPG, GIF, or PCX..." > "Note: The following call closes the stream." > + Smalltalk globals at: #ImageReadWriter ifPresent: [:imageReadWriter | > + ^ imageReadWriter formFromStream: aBinaryStream]