Thank you for your reply, I appreciate the input!

Overall I agree with what you are saying about the "bleeding
obvious".  However, I down scaled the exact same images on
BlackBerry's and had no problems whatsoever.  In our graphics arts, I
downscale graphics all the time and end up with great looking images.
The problem I am experiencing is something particular to Android
Canvas scale and is similar to the problem in the link I posted.

In intend to have a pinch zoom control the canvas scale so it looks
like I have a challenge ahead of me. One would think if I can pull it
off on a BlackBerry I could do it on an Android somehow.  I hope I am
not stuck with it as you say.

On Jan 22, 1:05 am, Peter Webb <[email protected]> wrote:
> At the risk of stating the bleeding obvious, if you upscale a bitmap
> *anywhere* in your code by a factor which is not an exact integer (1,
> 2, 3, etc) then the system will not be able to exactly reproduce the
> original image, and will be interpolating and/or duplicating pixels to
> make it fit. Which gives you a not so great result.
>
> You have gone to great lengths to avoid scaling when you read it in
> (using Bitmap Factory Options), this is largely a waste of time if you
> scale it for writing using canvas.scale. You will still get scaling
> artefacts on write. You need to suppress scaling for read *and* write.
>
> The only way that I know of to get pinsharp graphics - with your
> bitmaps appearing exactly how you intended - is to write to a canvas
> which has the same resolution as the actual device (or View). The
> downside of this is that you have to manage all possible screen
> resolutions within your code, as you can no longer use the system to
> map a fixed co-ordinate space in your code to the specs of the actual
> screen. A pretty obvious trade-off between coding simplicity and image
> quality.
>
> If you are already relying on automatic output scaling for lots of
> other stuff in your code, you are probably stuck with it.
>
> Peter Webb
>
> On Jan 22, 2:15 pm, JamesColeman <[email protected]>
> wrote:
>
>
>
>
>
>
>
> > I am having Image Quality problems using Canvas and
> > canvas.scale(Scale, Scale); they look exactly like the following:
>
> >http://stackoverflow.com/questions/2041207/android-quality-of-the-ima...
>
> > I believe I have read all the posts on image quality problems when re-
> > sizing bitmaps, but it doesn't seem to help when scaling with a Canvas
> > scale(float scale).
>
> > I have tried many different options as suggested by the image quality
> > posts.
>
> > BitmapFactory.Options options = new BitmapFactory.Options();
> > options.inJustDecodeBounds = false;
> > options.inDither = false;
> > options.inSampleSize = 1;
> > options.inScaled = false;
> > options.inPreferredConfig = Bitmap.Config.ARGB_8888;//I thought this
> > would do it
> > CurrentPicture = BitmapFactory.decodeFile(path, options);//Also tried
> > decodeStream()
>
> > PicturePaint = new Paint();
> > //PicturePaint = new Paint(Paint.FILTER_BITMAP_FLAG); //I also tried
> > this
> > //PicturePaint = new Paint(Paint.ANTI_ALIAS_FLAG);  //I also tried
> > this
> > canvas.scale(Scale, Scale);
> > canvas.drawBitmap(CurrentPicture, 0, 0, PicturePaint);
>
> > I am quite concerned as I am in serious trouble if I can't get the
> > image quality problem solved. Any help is appreciated.
>
> > Thanks!

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to