ImageEditor.st
changeset 1436 180804d7c28f
parent 1435 f39893848245
child 1443 ba75957c7bfc
equal deleted inserted replaced
1435:f39893848245 1436:180804d7c28f
  1236                #(#MenuItem
  1236                #(#MenuItem
  1237                   #label: 'Reduce number of colors...'
  1237                   #label: 'Reduce number of colors...'
  1238                   #translateLabel: true
  1238                   #translateLabel: true
  1239                   #value: #reduceNumberOfColors
  1239                   #value: #reduceNumberOfColors
  1240                 )
  1240                 )
       
  1241                #(#MenuItem
       
  1242                   #label: 'Make GrayScale Image'
       
  1243                   #translateLabel: true
       
  1244                   #value: #makeGrayScale
       
  1245                 )
  1241                )
  1246                )
  1242               nil
  1247               nil
  1243               nil
  1248               nil
  1244             )
  1249             )
  1245           )
  1250           )
  1640         value: 0;
  1645         value: 0;
  1641         value: (self listOfColors indexOf: imageEditView selectedColor).
  1646         value: (self listOfColors indexOf: imageEditView selectedColor).
  1642 !
  1647 !
  1643 
  1648 
  1644 update:something with:aParameter from:changedObject
  1649 update:something with:aParameter from:changedObject
  1645     |clrIndex|
  1650     |clrIndex img|
  1646 
  1651 
       
  1652     img := self image.
  1647     changedObject == self listOfColors ifTrue:[
  1653     changedObject == self listOfColors ifTrue:[
  1648         something == #at: ifTrue:[
  1654         something == #at: ifTrue:[
  1649             "/ colormap entry changed at aParameter
  1655             "/ colormap entry changed at aParameter
  1650 
  1656 
  1651             clrIndex := aParameter.
  1657             clrIndex := aParameter.
  1652             (self hasMask) ifTrue:[
  1658             (self hasMask) ifTrue:[
  1653                 clrIndex := clrIndex - 1.
  1659                 clrIndex := clrIndex - 1.
  1654             ].
  1660             ].
  1655 
  1661 
  1656             self image colorMap at:clrIndex put:(changedObject at:aParameter).
  1662             img colorMap at:clrIndex put:(changedObject at:aParameter).
  1657             self colorMapChanged.
  1663             self colorMapChanged.
  1658             ^ self
  1664             ^ self
  1659         ].
  1665         ].
  1660     ].
  1666     ].
  1661 
  1667 
  1664         ^ self.
  1670         ^ self.
  1665     ].
  1671     ].
  1666 
  1672 
  1667     changedObject == imageEditView ifTrue:[
  1673     changedObject == imageEditView ifTrue:[
  1668         something == #imageColors ifTrue:[
  1674         something == #imageColors ifTrue:[
  1669             self listOfColors contents:self image colorMap.
  1675             self listOfColors contents:img colorMap.
  1670             self findColorMapMode.
  1676             self findColorMapMode.
  1671             ^ self.
  1677             ^ self.
  1672         ].
  1678         ].
  1673         something == #image ifTrue:[
  1679         something == #image ifTrue:[
  1674             self imagePreView image:self image.
  1680             self imagePreView image:img.
       
  1681             self listOfColors contents:img colorMap.
       
  1682             self findColorMapMode.
  1675             ^ self.
  1683             ^ self.
  1676         ].
  1684         ].
  1677         something == #subImageIn ifTrue:[
  1685         something == #subImageIn ifTrue:[
  1678             self imagePreView image ~~ self image ifTrue:[
  1686             self imagePreView image ~~ img ifTrue:[
  1679                 self halt:'should not happen'.
  1687                 self halt:'should not happen'.
  1680             ].
  1688             ].
  1681             self imagePreView redraw:aParameter.
  1689             self imagePreView redraw:aParameter.
  1682             ^ self.
  1690             ^ self.
  1683         ].
  1691         ].
  2472 
  2480 
  2473     "Created: / 28.7.1998 / 20:03:11 / cg"
  2481     "Created: / 28.7.1998 / 20:03:11 / cg"
  2474     "Modified: / 15.9.1998 / 17:53:32 / cg"
  2482     "Modified: / 15.9.1998 / 17:53:32 / cg"
  2475 !
  2483 !
  2476 
  2484 
       
  2485 makeGrayScale
       
  2486     |anyChange img|
       
  2487 
       
  2488     self withExecuteCursorDo:[
       
  2489         anyChange := imageEditView makeGrayScale.
       
  2490         anyChange ifFalse:[
       
  2491             Dialog warn:'Image unchanged'.
       
  2492         ] ifTrue:[
       
  2493             img := imageEditView image.
       
  2494             imageEditView image:img.
       
  2495             self listOfColors contents:(img colorMap).
       
  2496             self findColorMapMode.
       
  2497             self updateLabelsAndHistory.
       
  2498         ]
       
  2499     ].
       
  2500 !
       
  2501 
  2477 reduceNumberOfColors
  2502 reduceNumberOfColors
  2478     |s n anyChange img|
  2503     |s n anyChange img|
  2479 
  2504 
  2480     s := Dialog request:'Number of color bits to strip (1-7) ?'.
  2505     s := Dialog request:'Number of color bits to strip (1-7) ?'.
  2481     s size == 0 ifTrue:[^ self].
  2506     s size == 0 ifTrue:[^ self].
  2483     (n between:1 and:7) ifFalse:[
  2508     (n between:1 and:7) ifFalse:[
  2484         Dialog warn:'Image unchanged'.
  2509         Dialog warn:'Image unchanged'.
  2485         ^ self
  2510         ^ self
  2486     ].
  2511     ].
  2487 
  2512 
  2488     imageEditView makeUndo.
       
  2489     self withExecuteCursorDo:[
  2513     self withExecuteCursorDo:[
  2490         anyChange := imageEditView reduceColorResolutionBy:n.
  2514         anyChange := imageEditView reduceColorResolutionBy:n.
  2491         anyChange ifFalse:[
  2515         anyChange ifFalse:[
  2492             Dialog warn:'Image unchanged'.
  2516             Dialog warn:'Image unchanged'.
  2493         ] ifTrue:[
  2517         ] ifTrue:[
  2801 !
  2825 !
  2802 
  2826 
  2803 doUndo
  2827 doUndo
  2804     "reverses last edit action"
  2828     "reverses last edit action"
  2805 
  2829 
  2806     imageEditView undo
  2830     imageEditView undo.
  2807 ! !
  2831 ! !
  2808 
  2832 
  2809 !ImageEditor methodsFor:'user actions - loading'!
  2833 !ImageEditor methodsFor:'user actions - loading'!
  2810 
  2834 
  2811 doLoadFromClass
  2835 doLoadFromClass