私のアプリケーションでは、ImageViewを拡張し、そのonDraw()メソッドをオーバーライドしました。カラーフィルターを使用してビットマップを操作し、反転、グレースケールなどの効果を追加しています。ビットマップを描画した後、それを保存しようとしていますが、追加の効果なしで元のビットマップしか保存できません。onDraw()とsaveメソッドのコードは次のとおりです。
protected void onDraw(Canvas canvas)
{
Paint paint = mPaint;
//cmf is the color matrix filter
paint.setColorFilter(cmf);
if(mBitmap != null)
{
canvas.drawBitmap(mBitmap, offsetW, offsetH, paint);
}
}
ビットマップを保存するためのコード:
try
{
FileOutputStream fout = new FileOutputStream(path);
mBitmap.compress(CompressFormat.JPEG, 100, fout);
} catch (FileNotFoundException e)
{
e.printStackTrace();
}
私は何か間違ったことをしていますか?どんな助けでも感謝されます。