读书人

Android图片小结

发布时间: 2012-09-22 21:54:54 作者: rapoo

Android图片总结

图片缩放:

public static Drawable resizeImage(Drawable d, int w, int h) {        // load the origial Bitmap        Bitmap BitmapOrg = ((BitmapDrawable) d).getBitmap();        int width = BitmapOrg.getWidth();        int height = BitmapOrg.getHeight();        int newWidth = w;        int newHeight = h;        // calculate the scale        float scaleWidth = ((float) newWidth) / width;        float scaleHeight = ((float) newHeight) / height;        // create a matrix for the manipulation        Matrix matrix = new Matrix();        // resize the Bitmap        matrix.postScale(scaleWidth, scaleHeight);        Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width,                        height, matrix, true);        // make a Drawable from Bitmap to allow to set the Bitmap        // to the ImageView, ImageButton or what ever        return new BitmapDrawable(resizedBitmap);}

?

public static Drawable resizeImage(Bitmap bitmap, int w, int h) {                // load the origial Bitmap                Bitmap BitmapOrg = bitmap;                int width = BitmapOrg.getWidth();                int height = BitmapOrg.getHeight();                int newWidth = w;                int newHeight = h;                // calculate the scale                float scaleWidth = ((float) newWidth) / width;                float scaleHeight = ((float) newHeight) / height;                // create a matrix for the manipulation                Matrix matrix = new Matrix();                // resize the Bitmap                matrix.postScale(scaleWidth, scaleHeight);                // if you want to rotate the Bitmap                // matrix.postRotate(45);                // recreate the new Bitmap                Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width,                                height, matrix, true);                // make a Drawable from Bitmap to allow to set the Bitmap                // to the ImageView, ImageButton or what ever                return new BitmapDrawable(resizedBitmap);        }

?图片写字:

/** * 图片上画字 * */private Bitmap drawTextAtBitmap(Bitmap bitmap,String text){int x = bitmap.getWidth();int y = bitmap.getHeight();// 创建一个和原图同样大小的位图Bitmap newbit = Bitmap.createBitmap(x, y, Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(newbit);Paint paint = new Paint();// 在原始位置0,0插入原图canvas.drawBitmap(bitmap, 0, 0, paint);paint.setColor(Color.parseColor("#dedbde"));paint.setTextSize(20);// 在原图指定位置写上字canvas.drawText(text, 53 , 30, paint);canvas.save(Canvas.ALL_SAVE_FLAG);// 存储canvas.restore();return newbit;}

?

1 楼 jn615 2010-08-16 return newbit;
之后呢?如何处理呀?我想知道怎么把newbit写道文件夹下 2 楼 bashenmail 2010-08-18 jn615 写道return newbit;
之后呢?如何处理呀?我想知道怎么把newbit写道文件夹下

Bitmap 有个这个方法:
boolean compress(Bitmap.CompressFormat format, int quality, OutputStream stream)

其中stream 即是你的输出流

参数:
formatThe format of the compressed image
qualityHint to the compressor, 0-100. 0 meaning compress for small size, 100 meaning compress for max quality. Some formats, like PNG which is lossless, will ignore the quality setting
streamThe outputstream to write the compressed data.
File f = new File("your path");
FileOutputStream output = new FileOutputStream(f);
//mBitmap 即为 return newbit
mBitmap.compress(Bitmap.CompressFormat.PNG, 100, output);
output.flush();
output.close();

异常请自己捕捉,我就不写了。 3 楼 elena_java 2010-09-21 字串太长不能自动换行怎么办?!

读书人网 >Android

热点推荐