java bitmap 点阵_Android Bitmap(点阵图像、绘制图像)
Bitmap 称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的,这些点通过不同的排列和染色以构成图样。
Bitmap 是 Android 系统中图像处理最重要的类之一,用它可以获取图像文件信息,对图像进行剪切、旋转、缩放等操作,并可以将图像保存成特定格式的文件。
Bitmap 位于 android.graphics 包中,不提供对外的构造方法,只能通过 BitmapFactory 类进行实例化。利用 BitmapFactory 的 decodeFile 方法可以从特定文件中获取 Bitmap 对象,也可以使用 decodeResource() 从特定的图片资源中获取 Bitmap 对象。
实例 BitmapDemo 从资源文件中创建 Bitmap 对象,并对其进行一些操作,运行效果如图 1 所示。
图 1 Bitmap对象的效果
其对应布局文件 Main.xml 的内容如下:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
android:id="@+id/seekBarId"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/img1" />
BitmapActivity.Java 的代码如下:
package introduction.android.bitmapdemo;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.SeekBar;
public class BitmapActivity extends Activity {
ImageView myImageView;
Bitmap myBmp, newBmp;
int bmpWidth, bmpHeight;
SeekBar seekbarRotate;
float rotAngle;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bitmap);
myImageView = (ImageView) findViewById(R.id.imageview);
//由Resource载入图片
myBmp = BitmapFactory.decodeResource(getResources(), R.drawable.img1);
bmpWidth = myBmp.getWidth();
bmpHeight = myBmp.getHeight();
//实例化matrix
Matrix matrix = new Matrix();
//设定Matrix属性 x、y缩放比例为1.5
matrix.postScale(1.5F, 1.5F);
//顺时针旋转45度
matrix.postRotate(45.0F);
newBmp = Bitmap.createBitmap(myBmp, 0, 0, bmpWidth, bmpHeight, matrix, true);
seekbarRotate = (SeekBar) findViewById(R.id.seekBarId);
seekbarRotate.setOnSeekBarChangeListener(onRotate);
}
private SeekBar.OnSeekBarChangeListener onRotate = new SeekBar.OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// TODO Auto-generated method stub
Matrix m = new Matrix();
m.postRotate((float) progress * 3.6F);
newBmp = Bitmap.createBitmap(myBmp, 0, 0, bmpWidth, bmpHeight, m, true);
myImageView.setImageBitmap(newBmp);
}
};
}
本实例实现了拖动进度条图片旋转的效果。
使用 BitmapFactory 从资源中载入图片,并获取图片的宽和高,之后使用 Matrix 类对图片进行缩放和旋转操作。
java bitmap 点阵_Android Bitmap(点阵图像、绘制图像)相关推荐
- 什么是点阵图 Bitmap ?
什么是点阵图 Bitmap ? 关于点阵图 Bitmap 点阵图 Bitmap 的关键特征 点阵图 Bitmap 的优势 点阵图 Bitmap 的劣势 关于点阵图 Bitmap 点阵图是以像素组成的, ...
- java位图_位图Bitmap及其Java实现
举个例子,如下图,如果我们想要存放 0,2,4,5,10,11,12,14,15这几个数字,如果采用普通存储方式,若4位表示一个数字,这9个数字需要4*9=36位,至少36位才能存储这些数据. 如果采 ...
- 【Java AWT 图形界面编程】使用鼠标滚轮缩放 Canvas 画布中绘制的背景图像 ( 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )
文章目录 一.鼠标滚轮缩放的中心点设置为当前鼠标中心点 - 要点分析 1.保存当前鼠标指针指向的位置 2.根据鼠标指针指向的位置以及比例重新计算图片位置 二.绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩 ...
- android bitmap 饱和度 demo,Android GPUImage实现多种图像滤镜效果
前言 GPUImage 是iOS下一个开源的基于GPU的图像处理库,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜.GPUImage for Android是它在Android下的实现, ...
- java base64转bitmap,如何将Bitmap位图与base64字符串相互转换
先引用delphi自带的单元 uses EncdDecd; 然后就可以使用下面二个函数了: ///将Bitmap位图转化为base64字符串 function BitmapToString(img:T ...
- 【Android 内存优化】自定义组件长图组件 ( 获取图像宽高 | 计算解码区域 | 设置图像解码属性 复用 像素格式 | 图像绘制 )
文章目录 一.获取图像真实宽高 二.计算解码区域 三.设置解码参数 内存复用 像素格式 四.图像绘制 五.执行效果 六.源码及资源下载 官方文档 API : BitmapRegionDecoder 在 ...
- java实现马赛克,java如何用Processing生成马赛克风格的图像
java如何用Processing生成马赛克风格的图像 首先使用PImage来实例化对象,再通过loadImage赋值,两层for循环遍历图片上的像素点,每隔5个像素点,画一个直径为3的圆.颜色通过p ...
- java实现缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等
可实现以下常用功能:缩放图像.切割图像.图像类型转换.彩色转黑白.文字水印.图片水印等 代码如下 复制代码 import java.awt.AlphaComposite; import java.aw ...
- Android 图像绘制之 Drawable
转载自:https://www.jianshu.com/p/4cd87e3c43d6,作者:不惜留恋_ (简书) 不要冲动去自定义 View 绘制简单的图形,以及显示静态的图片,可以用 Drawabl ...
最新文章
- 能上qq打不开网页,金山毒霸帮你解决
- 字节跳动学习笔记:java实例变量和静态变量
- 一种获取过程调用堆栈信息的简单方法
- can bus 中spn是什么_CP AUTOSAR功能栈简介NM网络管理(Can)
- Linux服务器开发之:stat(),fstat(),lstat()详细介绍+案例演示
- linux上线tomcat安装目录,LINUX 下 tomcat的安装和配置
- [Translation]《击鼓》
- 块元素、行内块和内联元素_如何删除内联块元素之间的空间?
- element table批量删除_element ui 批量删除
- 零基础不建议学前端_临夏零基础怎么学理发
- GISAXS和GIWAXS的分析
- Linux USB网卡驱动安装
- nullb driver分析6-blk-mq相关定时器
- 罗杨美慧 20190919-3 效能分析
- poj 2152 树形dp(建立消防站)
- 软件设计师2017下半年
- windows无法连接到打印机_打印机无法连接怎么办
- 重阳节绘画软件测试,2016九九重阳节绘画
- Android apk 逆向工程研究﹣破解 MyTV HD 機種限制手記
- mydockfinder怎么用?mydockfinder使用教程
热门文章
- UA OPTI544 量子光学12 半古典激光原理基础
- linux 端口查询命令
- 不好我不发出来,2008最新驱动大全(万能驱动光盘),
- 天花板级前端工程师才能玩转的工具?前端AI应用集合重磅开源
- 今日早报 每日精选12条新闻简报 每天一分钟 知晓天下事 8月14日
- 现在合适的正装才能使自己气场十足,气质自然更上一个层次
- Ogre 天龙八部地形 Heightmap(高度图)+GridInfo(地表信息)初步结果
- python抽样_python数据预处理 :数据抽样解析
- uni-app(踩坑第一篇):轮播图swiper改变指示点样式(已解决)
- 清朝第一巨贪--和绅