# HG changeset patch # User Claus Gittinger # Date 1427362751 -3600 # Node ID eae3e88c5cb1720bbe333406a1141504879190e9 # Parent ebfabb8002d1bc4814c1444e72d2cabf38a89f86 class: ImageEditor added: #doNewMaskFromClipboard changed: #localHelpTexts #menuFile diff -r ebfabb8002d1 -r eae3e88c5cb1 ImageEditor.st --- a/ImageEditor.st Wed Mar 25 15:20:01 2015 +0100 +++ b/ImageEditor.st Thu Mar 26 10:39:11 2015 +0100 @@ -473,6 +473,12 @@ #fileNewImage 'Create a new image' +#fileNewImageFromClipboard +'Create a new image and initialize it from the clipboard' + +#fileNewMaskFromClipboard +'Paste the image in the clipboard as a mask. Must be a depth-1 image' + #filePrint 'Print the image on a postscript printer' @@ -2811,11 +2817,16 @@ itemValue: doNewImage ) (MenuItem - activeHelpKey: fileNewImage + activeHelpKey: fileNewImageFromClipboard label: 'New from ClipBoard' itemValue: doNewImageFromClipboard ) (MenuItem + activeHelpKey: fileNewMaskFromClipboard + label: 'Mask from ClipBoard' + itemValue: doNewMaskFromClipboard + ) + (MenuItem label: '-' ) (MenuItem @@ -7003,6 +7014,34 @@ ] ! +doNewMaskFromClipboard + |mask image newImage| + + self checkModified ifFalse:[ ^ self ]. + + mask := imageEditView clipBoard. + mask isImageOrForm ifFalse:[ + mask := Image readFrom:(mask asString) onError:nil. + mask isNil ifTrue:[ + Dialog warn:'Clipboard does not contain an image I can use/understand'. + ^ self. + ]. + ]. + (image:= imageEditView image) isNil ifTrue:[ + image := mask. + ]. + mask extent ~= image extent ifTrue:[ + mask := imageEditView resizedImage:mask to:image extent. + ]. + newImage := image copy. + newImage mask:mask. + imageEditView newImageWithUndo:newImage. + self updateAfterImageChange. +"/ self updateColorsFromImage:image. +"/ self findColorMapMode. +"/ self updateLabelsAndHistory. +! + grabScreenImage "let user choose an area and grab that are for editing"