# HG changeset patch # User fm # Date 1193671763 -3600 # Node ID c67a676c439be810bcc1281e151f26e9cec97e0d # Parent 8f5c11474e4d69f601adb9ab08d53d3b78c36bb5 #rgbImageAsTrueColorFormOn: refactoring #rgbImageBitsOn:bestFormat: created diff -r 8f5c11474e4d -r c67a676c439b Depth24Image.st --- a/Depth24Image.st Mon Oct 22 10:40:07 2007 +0200 +++ b/Depth24Image.st Mon Oct 29 16:29:23 2007 +0100 @@ -1046,13 +1046,49 @@ rgbImageAsTrueColorFormOn:aDevice "return a truecolor form from the rgb-picture." - |bytes bestFormat usedDeviceDepth usedDeviceBitsPerPixel usedDevicePadding - myDepth form imageBits padd + | bestFormat usedDeviceDepth usedDeviceBitsPerPixel usedDevicePadding form imageBits| + + bestFormat := self bestSupportedImageFormatFor:aDevice. + + imageBits := self rgbImageBitsOn:aDevice bestFormat: bestFormat. + + usedDeviceDepth := bestFormat at:#depth. + usedDeviceBitsPerPixel := bestFormat at:#bitsPerPixel. + usedDevicePadding := bestFormat at:#padding. + + imageBits isNil ifTrue:[ + ^ self asMonochromeFormOn:aDevice + ]. + + form := Form width:width height:height depth:usedDeviceDepth onDevice:aDevice. + form isNil ifTrue:[ + 'Depth24Image [warning]: display bitmap creation failed' errorPrintCR. + ^ nil + ]. + form initGC. + + form + copyBitsFrom:imageBits + bitsPerPixel:usedDeviceBitsPerPixel + depth:usedDeviceDepth + padding:usedDevicePadding + width:width height:height + x:0 y:0 toX:0 y:0. + + ^ form + + "Modified: / 27-05-2007 / 16:48:16 / cg" +! + +rgbImageBitsOn:aDevice bestFormat: bestFormat + "return rgb bits from the rgb-picture." + + |bytes usedDeviceDepth usedDeviceBitsPerPixel usedDevicePadding + myDepth imageBits padd rightShiftR rightShiftG rightShiftB shiftRed shiftGreen shiftBlue| bytes := self bits. - bestFormat := self bestSupportedImageFormatFor:aDevice. usedDeviceDepth := bestFormat at:#depth. usedDeviceBitsPerPixel := bestFormat at:#bitsPerPixel. usedDevicePadding := bestFormat at:#padding. @@ -1489,27 +1525,12 @@ ]. imageBits isNil ifTrue:[ - 'IMAGE: unimplemented trueColor depth in #rgbImageAsTrueColorFormOn: ' errorPrint. + 'IMAGE: unimplemented trueColor depth in #rgbImageBitsOn: ' errorPrint. usedDeviceBitsPerPixel errorPrintCR. - ^ self asMonochromeFormOn:aDevice - ]. - - form := Form width:width height:height depth:usedDeviceDepth onDevice:aDevice. - form isNil ifTrue:[ - 'Depth24Image [warning]: display bitmap creation failed' errorPrintCR. ^ nil ]. - form initGC. - - form - copyBitsFrom:imageBits - bitsPerPixel:usedDeviceBitsPerPixel - depth:usedDeviceDepth - padding:usedDevicePadding - width:width height:height - x:0 y:0 toX:0 y:0. - - ^ form + + ^ imageBits "Modified: / 27-05-2007 / 16:48:16 / cg" ! ! @@ -3028,5 +3049,5 @@ !Depth24Image class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libview/Depth24Image.st,v 1.87 2007-05-31 15:18:02 stefan Exp $' + ^ '$Header: /cvs/stx/stx/libview/Depth24Image.st,v 1.88 2007-10-29 15:29:23 fm Exp $' ! !