/**
*
* @param b bitmap
* @param degrees 角度 0 ~ 360
* @return
*/
public static Bitmap rotate(Bitmap b, int degrees) {
if (degrees != 0 && b != null) {
Matrix m = new Matrix();
m.setRotate(degrees, (float) b.getWidth() / 2,
(float) b.getHeight() / 2);
// m.setRotate(degrees,0, 0);
try {
Bitmap b2 = Bitmap.createBitmap(b, 0, 0, b.getWidth(),
b.getHeight(), m, true);
if (b != b2) {
b.recycle(); // Android开发网再次提示Bitmap操作完应该显示的释放
b = b2;
}
} catch (OutOfMemoryError ex) {
// Android123建议大家如何出现了内存不足异常,最好return 原始的bitmap对象。.
return b;
}
}
return b;
}
分享到:
相关推荐
在Android开发中,我们经常会遇到需要对Bitmap进行各种操作的情况,其中旋转Bitmap就是一种常见的需求,比如用户拍摄照片后需要调整角度,或者在设计UI时需要动态调整图片的方向。这个“Bitmap位图旋转范例”是一个...
3. **旋转算法**:旋转Bitmap数据的关键在于应用旋转变换矩阵。对于90度旋转,可以采用简单的转置方法,即交换原图的行和列。对于其他角度的旋转,可能需要更复杂的算法,如仿射变换。 4. **边界处理**:由于旋转...
要旋转Bitmap,我们可以创建一个Matrix对象,设置其旋转角度,然后使用Bitmap的createBitmap方法,传入原始Bitmap、新的宽度和高度以及Matrix,来生成一个新的旋转后的Bitmap。 Matrix类是一个3x3的矩阵,用于表示...
例如,以下代码展示了如何使用Matrix旋转Bitmap: ```java Bitmap originalBitmap = ...; // 原始Bitmap Matrix matrix = new Matrix(); matrix.postRotate(45); // 旋转45度 Bitmap rotatedBitmap = Bitmap.create...
在Android开发中,位图(Bitmap)是图像处理的基础,而位图的旋转效果是常见的视觉操作之一。本篇文章将详细介绍如何在Android中实现Bitmap位图的旋转效果。 首先,我们要知道Android提供了两种主要的方式来实现...
旋转Bitmap需要指定一个旋转中心和角度。`postRotate()`方法接收旋转角度和旋转中心的x、y坐标。 ```java matrix.postRotate(angle, pivotX, pivotY); ``` 在实际应用中,通常会结合多个操作,例如先缩放再平移,...
- **旋转**:可以使用Matrix的`postRotate()`方法旋转Bitmap。 - **颜色转换**:通过ColorFilter或 PorterDuff.Mode 可以改变Bitmap的颜色效果。 - **合并与拼接**:多个Bitmap可以使用Canvas进行组合,形成新的...
程序刚运行,加载默认的Drawable ,设置维持的图像比例,ScaleTimes=1,维持1:1的宽高比例,使用Matrix.postScale设置维度 ,使用Matrix.postRotate方法旋转Bitmap,然后再创建新的Bitmap对象。 向右旋转则与此...
4. 旋转Bitmap:使用`Matrix`类可以实现Bitmap的旋转,首先创建一个Matrix对象,然后调用`setRotate()`方法设置旋转角度,最后通过`Bitmap.createBitmap(Bitmap src, int x, int y, int width, int height, Matrix m...
这个方法接受三个参数:源图像(`Bitmap`对象),旋转角度(以度为单位)和是否需要填充旋转后留下的空白区域。填充选项默认为`true`,意味着使用背景色填充。 例如,以下代码展示了如何旋转一个90度的图像: ```...
最后,使用`createBitmap()`方法创建一个新的`Bitmap`,它基于原`Bitmap`和旋转后的`Matrix`。 #### 3. 考虑旋转后尺寸变化 旋转可能会改变图片的宽高,因此可能需要调整显示区域的大小。同时,旋转后的图片可能会...
以下是一个简单的旋转Bitmap的示例代码: ```java Bitmap sourceBitmap = ... // 从文件或资源加载的原始Bitmap int rotationDegrees = ... // 旋转角度 Matrix matrix = new Matrix(); matrix.postRotate...
graphics.DrawImage(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height), 0, 0, bitmap.Width, bitmap.Height, GraphicsUnit.Pixel, imageAttr); // 保存旋转后的图像 bitmap.Save("rotated_image.jpg", ...
最后,旋转Bitmap可以通过Matrix的`postRotate()`方法实现: ```java matrix.postRotate(degrees, bitmap.getWidth() / 2, bitmap.getHeight() / 2); Bitmap rotatedBitmap = Bitmap.createBitmap(bitmap, 0, 0, ...
在Android开发中,Bitmap是用于图像处理的基本对象,它提供了丰富的功能,如绘图、旋转、缩放和添加水印等。本篇文章将深入探讨如何使用Bitmap进行绘图操作,以及如何实现图像的旋转、缩放和添加水印,特别关注在...
// 旋转Bitmap的方法 private static Bitmap rotateBitmap(Bitmap source, int angle) { Matrix matrix = new Matrix(); matrix.postRotate(angle); return Bitmap.createBitmap(source, 0, 0, source.getWidth()...
旋转Bitmap通常需要用到`Matrix`类的`postRotate()`方法,它接受一个角度参数,表示旋转的角度。例如,如果要顺时针旋转90度,可以调用`matrix.postRotate(90)`。旋转操作可能会导致图像的边界超出原尺寸,因此在...
可以使用`Matrix`类旋转Bitmap。首先创建一个Matrix,设置旋转角度,然后调用`Bitmap.createBitmap()`。例如: ```java Matrix matrix = new Matrix(); matrix.postRotate(90); // 旋转90度 Bitmap ...
首先,我们需要创建一个圆形Bitmap作为裁剪模板,然后使用Canvas的drawBitmap方法,结合Matrix的postRotate操作,将原Bitmap按照指定角度旋转后绘制到圆形Bitmap上。这样,超出圆形边界的图像部分会被裁剪掉,从而...
- 使用`Matrix`旋转Bitmap,以实现图片的任意角度展示。 7. 注意内存泄漏问题:避免在Activity或Fragment中直接持有Bitmap,可能导致内存泄漏。使用弱引用或者及时释放Bitmap。 8. 图片加载库的使用,如Glide、...