Image.st
changeset 1385 461b3901950e
parent 1374 ab515c0576c6
child 1386 51967fde82b7
--- a/Image.st	Wed Feb 26 16:47:59 1997 +0100
+++ b/Image.st	Thu Feb 27 12:48:05 1997 +0100
@@ -16,7 +16,9 @@
 		deviceForm monoDeviceForm fullColorDeviceForm mask'
 	classVariableNames:'Lobby DitherAlgorithm NumberOfDitherColors
 		CollectGarbageWhenRunningOutOfColors FileFormats
-		ImageNotFoundQuerySignal BadImageFormatQuerySignal'
+		ImageNotFoundQuerySignal BadImageFormatQuerySignal
+		ImageSaveErrorSignal FileCreationErrorSignal
+		CannotRepresentImageSignal InformationLostQuerySignal'
 	poolDictionaries:''
 	category:'Graphics-Images'
 !
@@ -530,11 +532,23 @@
         ImageNotFoundQuerySignal := QuerySignal new.
         ImageNotFoundQuerySignal nameClass:self message:#imageNotFoundQuerySignal.
 
+        ImageSaveErrorSignal := ErrorSignal newSignalMayProceed:true.
+        ImageSaveErrorSignal nameClass:self message:#imageSaveErrorSignal.
+
+        FileCreationErrorSignal := ImageSaveErrorSignal newSignalMayProceed:true.
+        FileCreationErrorSignal nameClass:self message:#fileCreationErrorSignal.
+
+        CannotRepresentImageSignal := ImageSaveErrorSignal newSignalMayProceed:true.
+        CannotRepresentImageSignal nameClass:self message:#cannotRepresentImageSignal.
+
+        InformationLostQuerySignal := QuerySignal new.
+        InformationLostQuerySignal nameClass:self message:#informationLostQuerySignal.
+
         BadImageFormatQuerySignal := QuerySignal new.
         BadImageFormatQuerySignal nameClass:self message:#badImageFormatQuerySignal.
     ]
 
-    "Modified: 1.2.1997 / 14:40:53 / cg"
+    "Modified: 27.2.1997 / 12:42:13 / cg"
 !
 
 initializeFileFormatTable
@@ -903,6 +917,29 @@
     "Created: 1.2.1997 / 14:40:29 / cg"
 !
 
+cannotRepresentImageSignal
+    "return the signal, which is raised if some
+     bitmap-image could not be saved in the requested format.
+     This happens for example, if a true color image is saved in
+     xpm format or a color image saved in xbm format.
+     Applications should either ask the class before saving
+     (via #canRepresent:) or handle the error and use an alternative
+     format then."
+
+    ^ CannotRepresentImageSignal
+
+    "Created: 27.2.1997 / 12:24:43 / cg"
+!
+
+fileCreationErrorSignal
+    "return the signal which is raised if a file could not be
+     created in an image-save operation."
+
+    ^ FileCreationErrorSignal
+
+    "Created: 27.2.1997 / 12:32:59 / cg"
+!
+
 imageNotFoundQuerySignal
     "return the (query-) signal, which is raised if some
      bitmap-image could not be loaded from a file.
@@ -913,6 +950,27 @@
     ^ ImageNotFoundQuerySignal
 
     "Created: 7.1.1997 / 16:04:49 / cg"
+!
+
+imageSaveErrorSignal
+    "return the parent signal of all image-save errors."
+
+    ^ ImageSaveErrorSignal
+
+    "Created: 27.2.1997 / 12:32:23 / cg"
+!
+
+informationLostQuerySignal
+    "return the (query-) signal, which is raised if some
+     bitmap-image is saved in a format which cannot represent
+     the full image (for example: the images mask).
+     If unhandled, the image-save proceeds.
+     Otherwise, the handler may show a warn box or whatever and decide
+     to proceed or abort the saving."
+
+    ^ InformationLostQuerySignal
+
+    "Created: 27.2.1997 / 12:43:50 / cg"
 ! !
 
 !Image class methodsFor:'cleanup'!
@@ -8533,7 +8591,17 @@
 
     ^ self saveOn:aFileName using:TIFFReader
 
-    "Modified: 1.2.1997 / 14:45:41 / cg"
+    "
+     |image|
+
+     image := Image fromFile:'bitmaps/RCube.tiff'.
+     image saveOn:'myImage.tiff'.
+     image saveOn:'myImage.xbm'.
+     image saveOn:'myImage.xpm'.
+     image saveOn:'myImage.xwd'.
+    "
+
+    "Modified: 27.2.1997 / 12:40:40 / cg"
 !
 
 saveOn:aFileName using:readerClass
@@ -8544,9 +8612,10 @@
     "
      anImage saveOn:'myImage' using:TIFFReader
      anImage saveOn:'myImage' using:XBMReader
-    "
-
-    "Modified: 1.2.1997 / 14:45:13 / cg"
+     anImage saveOn:'myImage' using:XPMReader
+    "
+
+    "Modified: 27.2.1997 / 11:41:52 / cg"
 ! !
 
 !Image methodsFor:'screen capture'!
@@ -8940,6 +9009,6 @@
 !Image class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/Image.st,v 1.148 1997-02-25 16:48:22 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/Image.st,v 1.149 1997-02-27 11:48:05 cg Exp $'
 ! !
 Image initialize!