After a correction on my greyscale formula in my last post from Mark on facebook I reviewed the results of my code and decided the disabled look wasn’t quite right. What I wanted was a a washed out looking version. This code and plugin modifies the alphaData of the image to 33% of the original and greys the imageData 15% more. You can modify the constants in the button code if you want different ratios. Here’s the code:
constant kTranslucencyRatio = 0.33
constant kGreyRatio = 0.15
on fadeImage pImageID
local tAlphaData,tOffset,tWidth,tHeight,tAlpha
lock screen
put the width of pImageID into tWidth
put the height of pImageID onto tHeight
put the alphaData of pImageID into tAlphaData
repeat with tOffset = 0 to tWidth *tHeight
put charToNum(char tOffset of tAlphaData) into tAlpha
-- handle cases of very low alpha for edge smoothing
if round(tAlpha*kTranslucencyRatio) > 0 then
put NumToChar(round(tAlpha*kTranslucencyRatio)) into char tOffset of tAlphaData
end if
end repeat
set the alphaData of pImageID to tAlphaData
end fadeImage
on greyImage pImageID
local tImageData, tRed, tGreen, tBlue, tGrey, tOffset,tWidth,tHeight
lock screen
put the width of pImageID into tWidth
put the height of pImageID onto tHeight
put the imageData of pImageID into tImageData
repeat with tOffset = 0 to tWidth *tHeight * 4 step 4
put charToNum(char tOffset + 2 of tImageData) into tRed
put charToNum(char tOffset + 3 of tImageData) into tGreen
put charToNum(char tOffset + 4 of tImageData) into tBlue
put (30*tRed+59*tGreen+11*tBlue)/100 into tGrey
put round(tGrey*kGreyRatio+tRed*(1-kGreyRatio)) into tRed
put round(tGrey*kGreyRatio+tGreen*(1-kGreyRatio)) into tGreen
put round(tGrey*kGreyRatio+tBlue*(1-kGreyRatio)) into tBlue
put NumToChar(tRed) into char tOffset + 2 of tImageData
put NumToChar(tGreen) into char tOffset + 3 of tImageData
put NumToChar(tBlue) into char tOffset + 4 of tImageData
end repeat
set the imageData of pImageID to tImageData
end greyImage
|
|
download: disableImage (1.38KB) added: 04/09/2010 description: This little plugin creates a disabled version of any selected images. Default settings are changing the translucency of the image to 33% of the original and greying it out 15% of the original. |

