convert non-depth8 images when trying to save
authorClaus Gittinger <cg@exept.de>
Wed, 16 Aug 2000 19:24:28 +0200
changeset 1393 abed635fb3ce
parent 1392 574ff2ddb0f8
child 1394 407a23a1fdfa
convert non-depth8 images when trying to save
GIFReader.st
--- a/GIFReader.st	Tue Aug 15 16:51:28 2000 +0200
+++ b/GIFReader.st	Wed Aug 16 19:24:28 2000 +0200
@@ -10,6 +10,8 @@
  hereby transferred.
 "
 
+"{ Package: 'stx:libview2' }"
+
 ImageReader subclass:#GIFReader
 	instanceVariableNames:'redMap greenMap blueMap pass xpos ypos rowByteSize remainBitCount
 		bufByte bufStream prefixTable suffixTable clearCode eoiCode
@@ -774,12 +776,21 @@
 save:image onFile:aFileName
     "save image as GIF file on aFileName"
 
-    |aStream|
+    |aStream convertedImage|
 
     image depth ~~ 8 ifTrue:[
+        Image errorSignal handle:[:ex |
+            ex return.
+        ] do:[
+            convertedImage := Image newForDepth:8.
+            convertedImage fromImage:image photometric:#palette.
+        ].
+        convertedImage notNil ifTrue:[
+            ^ self save:convertedImage onFile:aFileName
+        ].
         ^ Image cannotRepresentImageSignal 
             raiseWith:image
-            errorString:('GIF (currently) only supports depth8 images').
+            errorString:('GIF (currently) only supports depth8 images (cannot convert)').
     ].
 
     aStream := FileStream newFileNamed:aFileName.
@@ -1018,6 +1029,6 @@
 !GIFReader class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview2/GIFReader.st,v 1.75 2000-01-24 09:41:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview2/GIFReader.st,v 1.76 2000-08-16 17:24:28 cg Exp $'
 ! !
 GIFReader initialize!