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 字串太长不能自动换行怎么办?!