ぼかし
トイカメラ風の画像を加工する工程の中で既に出てきていますが(サンプル画像はコントラスト等を調整しているので)ぼかし処理だけを入れた場合の画像。
private Bitmap effectShadeing( Bitmap bitmap, int range ){ if( bitmap == null ){ bitmap = BitmapFactory.decodeResource( getResources( ), R.drawable.original ).copy( Bitmap.Config.ARGB_8888, true ); } if( bitmap == null ){ return bitmap; } if( bitmap.isMutable( ) != true ){ bitmap = bitmap.copy( Bitmap.Config.ARGB_8888, true ); } int height = bitmap.getHeight( ); int width = bitmap.getWidth( ); int[] pixels = new int[( width * height )]; bitmap.getPixels( pixels, 0, width, 0, 0, width, height ); int i, j, ii, jj; int pixel = 3; for( i = 0; i < width; ++i ){ for( j = 0; j < height; ++j ){ int r, g, b; float sumR, sumG, sumB; sumR = 0.0f; sumG = 0.0f; sumB = 0.0f; for( ii = -pixel; ii <= pixel; ii++ ){ for( jj = -pixel; jj <= pixel; jj++ ){ if( ( i + ii ) < 0 || width <= ( i + ii ) || ( j + jj ) < 0 || height <= ( j + jj ) ){ continue; } int bitmapColor = pixels[( ( i + ii ) + ( j + jj ) * width )]; r = Color.red( bitmapColor ); g = Color.green( bitmapColor ); b = Color.blue( bitmapColor ); sumR += (float)r; sumG += (float)g; sumB += (float)b; } } int rr, gg, bb; rr = (int)( sumR / Math.pow( ( 1 + ( 2 * pixel ) ), 2 ) ); gg = (int)( sumG / Math.pow( ( 1 + ( 2 * pixel ) ), 2 ) ); bb = (int)( sumB / Math.pow( ( 1 + ( 2 * pixel ) ), 2 ) ); if( range <= 0 || !( i < ( ( width / 2 ) + range ) && ( ( width / 2 ) - range ) < i && j < ( ( height / 2 ) + range ) && ( ( height / 2 ) - range ) < j ) ){ pixels[( i + j * width )] = Color.rgb( rr, gg, bb ); } } } bitmap.setPixels( pixels, 0, width, 0, 0, width, height ); return bitmap; }