Re: [flexcoders] Re: Resizing transparent png
Thanks for your help. Using smoothing helped a bit, but I was still seeing pixelization. My image was 100x100 and I was setting scaleX=.6 and scaleY=.6(using Zoom effect to 1), changing my scaleX/Y to .5 produced an image that was perfect. I guess I need to respect the aspect ratio and use scale values that would not require rounding??? Do you know if we need to set scale values according to the aspect ratio(any rule of thumb)? Cheers, Greg On Fri, Oct 2, 2009 at 3:35 PM, ag_rcuren robert.vancuren...@gmail.comwrote: No you can do it at runtime but you must make a bitmap from the png first. Take a look at the code below or see a live example here http://www.chill-mode.com/flex_examples/smoothing/Smoothing.html view source is enabled. ?xml version=1.0 encoding=utf-8? mx:Application xmlns:mx=http://www.adobe.com/2006/mxml; layout=absolute creationComplete=zoomer.play([image]); mx:Script ![CDATA[ private function smoothImage(event:Event):void { //Create a new bitmap with smoothing from the original image var smoothData:BitmapData = new BitmapData(image.width, image.height, true, 0x00FF); smoothData.draw(image.content as Bitmap); var smoothImage:Bitmap = new Bitmap(smoothData, auto, true); image.source = smoothImage; } ]] /mx:Script mx:Sequence id=zoomer repeatCount=0 mx:Zoom zoomHeightFrom=1.0 zoomHeightTo=2.0 zoomWidthFrom=1.0 zoomWidthTo=2.0 duration=3000/ mx:Zoom zoomHeightFrom=2.0 zoomHeightTo=1.0 zoomWidthFrom=2.0 zoomWidthTo=1.0 duration=3000/ /mx:Sequence mx:Button label=smooth image click=smoothImage(event); / mx:Image id=image source=@Embed(source='tranparent.png') x=319.5 y=173/ /mx:Application --- In flexcoders@yahoogroups.com flexcoders%40yahoogroups.com, Greg Hess flexeff...@... wrote: Thanks very much for your reply. I suspected smoothing too and tried using a SmothImage class we use for resizing external JPG's, however it did not help. If I understand correctly the smoothing of the PNG would need to be performed when creating the graphic, not at runtime in Flash, is this correct? On Fri, Oct 2, 2009 at 1:04 PM, ag_rcuren robert.vancuren...@...wrote: Smoothing should solve your problem. I have done a very similar thing and by smoothing the images it fixed the pixelization. You may have to create a new Bitmap from the image and set that Bitmap's smoothing to true. I do not believe you can directly smooth a .png image I think smoothing only applies to bitmaps. --- In flexcoders@yahoogroups.com flexcoders%40yahoogroups.comflexcoders% 40yahoogroups.com, Greg Hess flexeffect@ wrote: Hi All, I am trying to apply a roll over/out resize or zoom effect on a Button with graphical skins. When the mouse is over the image I want it to grow and shrink on exit(currently using roll over/out events). My png skins are transparent and have round shapes, when I resize/zoom up or down the image quality is poor and shows pixelization on the round edges. I have tried swapping the images (large vs small) when the effects end but it feels clunky. I have tried using a straight image vs a button component but get the same result. I also tried just specifying the large image as the over, down skins and applying a resize effect to the button but it also is clunky. Cache as bitmap, smoothing, maintain aspect ratio, scale content seem to have no effect on my resizing of these transparent pngs. Not sure what I am doing wrong, any help is much appreciated. Thanks, Greg
[flexcoders] Re: Resizing transparent png
Smoothing should solve your problem. I have done a very similar thing and by smoothing the images it fixed the pixelization. You may have to create a new Bitmap from the image and set that Bitmap's smoothing to true. I do not believe you can directly smooth a .png image I think smoothing only applies to bitmaps. --- In flexcoders@yahoogroups.com, Greg Hess flexeff...@... wrote: Hi All, I am trying to apply a roll over/out resize or zoom effect on a Button with graphical skins. When the mouse is over the image I want it to grow and shrink on exit(currently using roll over/out events). My png skins are transparent and have round shapes, when I resize/zoom up or down the image quality is poor and shows pixelization on the round edges. I have tried swapping the images (large vs small) when the effects end but it feels clunky. I have tried using a straight image vs a button component but get the same result. I also tried just specifying the large image as the over, down skins and applying a resize effect to the button but it also is clunky. Cache as bitmap, smoothing, maintain aspect ratio, scale content seem to have no effect on my resizing of these transparent pngs. Not sure what I am doing wrong, any help is much appreciated. Thanks, Greg
Re: [flexcoders] Re: Resizing transparent png
Thanks very much for your reply. I suspected smoothing too and tried using a SmothImage class we use for resizing external JPG's, however it did not help. If I understand correctly the smoothing of the PNG would need to be performed when creating the graphic, not at runtime in Flash, is this correct? On Fri, Oct 2, 2009 at 1:04 PM, ag_rcuren robert.vancuren...@gmail.comwrote: Smoothing should solve your problem. I have done a very similar thing and by smoothing the images it fixed the pixelization. You may have to create a new Bitmap from the image and set that Bitmap's smoothing to true. I do not believe you can directly smooth a .png image I think smoothing only applies to bitmaps. --- In flexcoders@yahoogroups.com flexcoders%40yahoogroups.com, Greg Hess flexeff...@... wrote: Hi All, I am trying to apply a roll over/out resize or zoom effect on a Button with graphical skins. When the mouse is over the image I want it to grow and shrink on exit(currently using roll over/out events). My png skins are transparent and have round shapes, when I resize/zoom up or down the image quality is poor and shows pixelization on the round edges. I have tried swapping the images (large vs small) when the effects end but it feels clunky. I have tried using a straight image vs a button component but get the same result. I also tried just specifying the large image as the over, down skins and applying a resize effect to the button but it also is clunky. Cache as bitmap, smoothing, maintain aspect ratio, scale content seem to have no effect on my resizing of these transparent pngs. Not sure what I am doing wrong, any help is much appreciated. Thanks, Greg
[flexcoders] Re: Resizing transparent png
No you can do it at runtime but you must make a bitmap from the png first. Take a look at the code below or see a live example here http://www.chill-mode.com/flex_examples/smoothing/Smoothing.html view source is enabled. ?xml version=1.0 encoding=utf-8? mx:Application xmlns:mx=http://www.adobe.com/2006/mxml; layout=absolute creationComplete=zoomer.play([image]); mx:Script ![CDATA[ private function smoothImage(event:Event):void { //Create a new bitmap with smoothing from the original image var smoothData:BitmapData = new BitmapData(image.width, image.height, true, 0x00FF); smoothData.draw(image.content as Bitmap); var smoothImage:Bitmap = new Bitmap(smoothData, auto, true); image.source = smoothImage; } ]] /mx:Script mx:Sequence id=zoomer repeatCount=0 mx:Zoom zoomHeightFrom=1.0 zoomHeightTo=2.0 zoomWidthFrom=1.0 zoomWidthTo=2.0 duration=3000/ mx:Zoom zoomHeightFrom=2.0 zoomHeightTo=1.0 zoomWidthFrom=2.0 zoomWidthTo=1.0 duration=3000/ /mx:Sequence mx:Button label=smooth image click=smoothImage(event); / mx:Image id=image source=@Embed(source='tranparent.png') x=319.5 y=173/ /mx:Application --- In flexcoders@yahoogroups.com, Greg Hess flexeff...@... wrote: Thanks very much for your reply. I suspected smoothing too and tried using a SmothImage class we use for resizing external JPG's, however it did not help. If I understand correctly the smoothing of the PNG would need to be performed when creating the graphic, not at runtime in Flash, is this correct? On Fri, Oct 2, 2009 at 1:04 PM, ag_rcuren robert.vancuren...@...wrote: Smoothing should solve your problem. I have done a very similar thing and by smoothing the images it fixed the pixelization. You may have to create a new Bitmap from the image and set that Bitmap's smoothing to true. I do not believe you can directly smooth a .png image I think smoothing only applies to bitmaps. --- In flexcoders@yahoogroups.com flexcoders%40yahoogroups.com, Greg Hess flexeffect@ wrote: Hi All, I am trying to apply a roll over/out resize or zoom effect on a Button with graphical skins. When the mouse is over the image I want it to grow and shrink on exit(currently using roll over/out events). My png skins are transparent and have round shapes, when I resize/zoom up or down the image quality is poor and shows pixelization on the round edges. I have tried swapping the images (large vs small) when the effects end but it feels clunky. I have tried using a straight image vs a button component but get the same result. I also tried just specifying the large image as the over, down skins and applying a resize effect to the button but it also is clunky. Cache as bitmap, smoothing, maintain aspect ratio, scale content seem to have no effect on my resizing of these transparent pngs. Not sure what I am doing wrong, any help is much appreciated. Thanks, Greg