ImageReader.st
changeset 1551 1e1f4820b93a
parent 1550 afee7c032a57
child 1574 7c25ed84ad12
--- a/ImageReader.st	Fri Apr 04 21:51:28 1997 +0200
+++ b/ImageReader.st	Fri Apr 04 22:13:37 1997 +0200
@@ -1293,28 +1293,27 @@
     "read an image (in my format) from aFileName. 
      Return the image or nil on error."
 
-    |result inStream|
+    |reader|
 
-    inStream := self streamReadingFile:aFileName.
-    inStream isNil ifTrue:[
-        'ImageReader [warning]: file open error' errorPrintCR.
-        ^ nil
+    reader := self readFile:aFileName.
+    reader notNil ifTrue:[
+        ^ reader image
     ].
-    result := self fromStream:inStream.
-    inStream close.
-    ^ result
+    ^ nil
 
     "
-     XPMReader fromFile:'bitmaps/ljet.xpm'
      XBMReader fromFile:'bitmaps/SBrowser.xbm'
+     XPMReader fromFile:'bitmaps/xpmBitmaps/BOOK.xpm'
+     XBMReader fromFile:'bitmaps/xpmBitmaps/BOOK.xpm'
     "
 
-    "Modified: 10.1.1997 / 17:53:51 / cg"
+    "Modified: 4.4.1997 / 22:09:49 / cg"
 !
 
 fromStream:aStream
     "read an image (in my format) from aStream.
-     Return the image or nil (if unrecognized format or error)"
+     Return the image or nil (if unrecognized format or error).
+     The stream remains open."
 
     |reader|
 
@@ -1324,45 +1323,71 @@
     ].
     ^ nil
 
-    "Modified: 22.4.1996 / 19:11:58 / cg"
+    "Modified: 4.4.1997 / 22:11:49 / cg"
 !
 
 imagesFromFile:aFileName
     "read all images (in my format) from aFileName. 
-     Return a collection of images or nil on error."
+     Return a collection of images or nil on error.
+     Not all reader may support multiple images."
+
+    |reader|
+
+    reader := self readFile:aFileName.
+    reader notNil ifTrue:[
+        ^ reader images
+    ].
+    ^ nil
+
+    "Modified: 4.4.1997 / 22:11:01 / cg"
+!
 
-    |result inStream|
+imagesFromStream:aStream
+    "read all images (in my format) from aStream.
+     Return a collection of images or nil (if unrecognized format or error).
+     The stream remains open.
+     Not all reader may support multiple images."
+
+    |reader|
+
+    reader := self new fromStream:aStream.
+    reader notNil ifTrue:[
+        ^ reader images
+    ].
+    ^ nil
+
+    "Modified: 4.4.1997 / 22:11:40 / cg"
+!
+
+readFile:aFileName
+    "create a reader and let it read an image (in my format) from aFileName. 
+     Return the reader."
+
+    |reader inStream|
 
     inStream := self streamReadingFile:aFileName.
     inStream isNil ifTrue:[
         'ImageReader [warning]: file open error' errorPrintCR.
         ^ nil
     ].
-    result := self imagesFromStream:inStream.
+    reader := self new fromStream:inStream.
     inStream close.
-    ^ result
+    ^ reader
 
-    "Created: 4.4.1997 / 21:40:52 / cg"
-    "Modified: 4.4.1997 / 21:42:38 / cg"
+    "
+     XPMReader readFile:'bitmaps/xpmBitmaps/BOOK.xpm'
+    "
+
+    "Modified: 4.4.1997 / 22:06:49 / cg"
 !
 
-imagesFromStream:aStream
-    "read all images (in my format) from aStream.
-     Return a collection of images or nil (if unrecognized format or error)"
-
-    |reader|
+readStream:inStream
+    "create a reader and let it read a stream (in my format). 
+     Return the reader. The stream remains open."
 
-    reader := self new fromStream:aStream.
-    reader notNil ifTrue:[
-        reader hasMultipleImages ifTrue:[
-            ^ reader images
-        ].
-        ^ Array with:(reader image)
-    ].
-    ^ nil
+    ^ self new fromStream:inStream.
 
-    "Modified: 22.4.1996 / 19:11:58 / cg"
-    "Created: 4.4.1997 / 21:41:54 / cg"
+    "Created: 4.4.1997 / 22:08:13 / cg"
 ! !
 
 !ImageReader class methodsFor:'image writing'!
@@ -1490,6 +1515,22 @@
     "Modified: 20.6.1996 / 17:09:04 / cg"
 !
 
+images
+    "return a collection of all images as represented by myself.
+     For compatibility with single-image formats, return a collection
+     containing my single image here."
+
+    |img|
+
+    img := self image.
+    img isNil ifTrue:[
+        ^ img
+    ].
+    ^ Array with:img
+
+    "Modified: 4.4.1997 / 22:02:22 / cg"
+!
+
 mask
     "return the image mask (or nil)"
 
@@ -1703,5 +1744,5 @@
 !ImageReader class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/ImageReader.st,v 1.41 1997-04-04 19:51:28 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/ImageReader.st,v 1.42 1997-04-04 20:13:37 cg Exp $'
 ! !