图片缩放:
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写道文件夹下
之后呢?如何处理呀?我想知道怎么把newbit写道文件夹下
2 楼 bashenmail 2010-08-18
jn615 写道
return newbit;
之后呢?如何处理呀?我想知道怎么把newbit写道文件夹下
之后呢?如何处理呀?我想知道怎么把newbit写道文件夹下
Bitmap 有个这个方法:
boolean compress(Bitmap.CompressFormat format, int quality, OutputStream stream)
其中stream 即是你的输出流
参数:
format The format of the compressed image
quality Hint 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
stream The 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
字串太长不能自动换行怎么办?!