Android图片小结

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 即是你的输出流

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