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]