Android сохранить холст на SD - PullRequest
0 голосов
/ 17 августа 2011

Я создал изображение на холсте, используя colorfilter

Это мой код

     int color = mPaint.getColor();
     f = new LightingColorFilter(color, 1);
     mPaint.setColorFilter(f);


     myBmp = BitmapFactory.decodeResource(getResources(), R.drawable.icon10);
     canvas.drawBitmap(myBmp, 20, 20, mPaint);
     canvas.save();
     canvas.restore();`

, а затем я хочу сохранить его на SDCard

            OutputStream outStream = null;
            File file = new File(extStorageDirectory, "er.PNG");
            try {
            outStream = new FileOutputStream(file);
            myBmp.compress(Bitmap.CompressFormat.PNG, 85, outStream);
            outStream.flush();
            outStream.close();

            Toast.makeText(Draw.this, "Saved", Toast.LENGTH_LONG).show();

           } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Toast.makeText(Draw.this, e.toString(), Toast.LENGTH_LONG).show();
           } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Toast.makeText(Draw.this, e.toString(), Toast.LENGTH_LONG).show();
           }

ЭтоРаботать, но есть проблема, моя картинка на sd старая фотография (не фильтр)

я могу решить эту проблему ??, спасибо

1 Ответ

1 голос
/ 03 апреля 2012

Вам нужно нарисовать в Bitmap. Попробуйте ниже:

 int color = mPaint.getColor();
 f = new LightingColorFilter(color, 1);
 mPaint.setColorFilter(f);
 Bitmap outBitmap = Bitmap.Create(myBmp.getWidth(),myBmp.getHeight(),Bitmap.Config.ARGB_8888);
 Canvas canvas = new Canvas(outBitmap);
 canvas.drawBitmap(myBmp,20,20,mPaint);

А потом вы можете «сохранить» (outBitmap) на SD-карту. Если вы откроете Bitmap с BitmapFactory, вы получите неизменное изображение и не сможете его рисовать. Вот почему вам нужно создать темп. Растровое изображение, подключите Canvas для рисования, рисования и сохранения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...