mne*_*emy 9 android bitmap image-processing
我正在尝试将一个微小的图像(像20x40像素)缩放到任意大的图像.我通过设置ImageView.scaleType财产做缩放,但同时它缩放图像,它从一个原始像素的颜色下一变淡,创建图像的模糊的大版本.
这是问题的一些背景.我正在尝试为Android创建一个老式的16位风格游戏.我想将sprite/etc存储为小文件,然后根据用户的屏幕大小将它们放大.这样,我不必为每个精灵创建大量不同大小的不同图像.现在我正在研究一个概念验证,所以我试图将一个小的20x40图像文件缩放到整个屏幕的大小.
*编辑:我想出了如何使用Reflog推荐的方法.但是,它仍然会有一些衰落,远远低于默认算法.
*edit2:搞定了!我不得不关闭抗锯齿
*edit3:这神秘地停止了我的工作,我找到了另一个需要禁用抖动/自动缩放的地方.添加了选项行.
@Override
protected void onDraw(Canvas canvas) {
Paint paint = new Paint();
paint.setDither(false);
paint.setAntiAlias(false);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inDither = false;
options.inScaled = false;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.tinyimg, options);
canvas.drawBitmap(bitmap, null, new RectF(getLeft(), getTop(), getRight()/2, getBottom()/2), paint);
}
Run Code Online (Sandbox Code Playgroud)
使用:
paint.setDither(false);
g.drawBitmap(img, src, dst, paint);
Run Code Online (Sandbox Code Playgroud)
使用NN缩放,这将减少模糊,但也会降低缩放的质量.