图像的平移,缩放..
来源:互联网 发布:网络大专文凭找工作 编辑:程序博客网 时间:2024/04/28 17:05
package com.itheima.img;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.view.Menu;
import android.widget.ImageView;
public class MainActivity extends Activity {
ImageView iv_src , iv_target;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv_src = (ImageView) findViewById(R.id.iv_src);
iv_target = (ImageView) findViewById(R.id.iv_target);
//先让原图显示
//1. 得到原图
Bitmap srcBitmap = BitmapFactory.decodeFile("/mnt/sdcard/tp1.jpg");
iv_src.setImageBitmap(srcBitmap);
//旋转的图片显示 --- 但凡是对图像进行操作 (平移、旋转、缩放) ,都是对这张图像在内存中的拷贝操作,
//而不是对本图进行操作。
//2.得到拷贝的图片
//先创建出来一份空白的位图,这个位图的宽度和高度与原图一模一样 , 配置信息也一模一样。
//以下写的代码相当于是临摹一张正版的图片一样 ,假设临摹的是八骏图 . 这里相当于是得到了一张空白的纸张
Bitmap copytBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), srcBitmap.getConfig());
//3. 定义画板 画板上放置空白的纸张,一会要进行作画
Canvas canvas = new Canvas(copytBitmap);
//4. 定义画笔
Paint paint = new Paint();
// paint.setColor(color)
//5. 定义矩阵 -- 目前是按照1:1的比例作画
Matrix matrix = new Matrix();
//指定旋转15度
//matrix.setRotate(180, copytBitmap.getWidth() / 2 , copytBitmap.getHeight() / 2);
//matrix.setTranslate(50, 50);
//缩放 ,宽度是原来的0.2倍 ,高度是原来的0.8倍
//matrix.setScale(0.2f, 0.8f);
//把y坐标都全部改成负数
matrix.setScale(1, -1) ;
//让其平移回来显示 setXXXX并不会在以前的效果基础上再设置新的效果。
// postXXXX在以前的基础上作变更。
matrix.postTranslate(0, copytBitmap.getHeight());
//6. 开始作画 参数一: 参照哪一个图片作画 参数二:矩阵 参数三: 画笔
canvas.drawBitmap(srcBitmap, matrix, paint);
//7.显示图片
iv_target.setImageBitmap(copytBitmap);
}
}
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.view.Menu;
import android.widget.ImageView;
public class MainActivity extends Activity {
ImageView iv_src , iv_target;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv_src = (ImageView) findViewById(R.id.iv_src);
iv_target = (ImageView) findViewById(R.id.iv_target);
//先让原图显示
//1. 得到原图
Bitmap srcBitmap = BitmapFactory.decodeFile("/mnt/sdcard/tp1.jpg");
iv_src.setImageBitmap(srcBitmap);
//旋转的图片显示 --- 但凡是对图像进行操作 (平移、旋转、缩放) ,都是对这张图像在内存中的拷贝操作,
//而不是对本图进行操作。
//2.得到拷贝的图片
//先创建出来一份空白的位图,这个位图的宽度和高度与原图一模一样 , 配置信息也一模一样。
//以下写的代码相当于是临摹一张正版的图片一样 ,假设临摹的是八骏图 . 这里相当于是得到了一张空白的纸张
Bitmap copytBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), srcBitmap.getConfig());
//3. 定义画板 画板上放置空白的纸张,一会要进行作画
Canvas canvas = new Canvas(copytBitmap);
//4. 定义画笔
Paint paint = new Paint();
// paint.setColor(color)
//5. 定义矩阵 -- 目前是按照1:1的比例作画
Matrix matrix = new Matrix();
//指定旋转15度
//matrix.setRotate(180, copytBitmap.getWidth() / 2 , copytBitmap.getHeight() / 2);
//matrix.setTranslate(50, 50);
//缩放 ,宽度是原来的0.2倍 ,高度是原来的0.8倍
//matrix.setScale(0.2f, 0.8f);
//把y坐标都全部改成负数
matrix.setScale(1, -1) ;
//让其平移回来显示 setXXXX并不会在以前的效果基础上再设置新的效果。
// postXXXX在以前的基础上作变更。
matrix.postTranslate(0, copytBitmap.getHeight());
//6. 开始作画 参数一: 参照哪一个图片作画 参数二:矩阵 参数三: 画笔
canvas.drawBitmap(srcBitmap, matrix, paint);
//7.显示图片
iv_target.setImageBitmap(copytBitmap);
}
}
0 0
- 图像的平移,缩放..
- 图像的平移和缩放
- matlab实现图像的平移、旋转、缩放
- matlab实现图像的平移、旋转、缩放
- Matlab 实现图像的平移,旋转,缩放
- chapter14_1图像的缩放与平移
- OpenCV在图像上抠取指定区域平移、缩放的图像
- 图像平移缩放旋转匹配
- 图像平移缩放旋转匹配
- C#中图像平移、缩放的实现技巧
- Android学习笔记11:图像的平移、旋转及缩放
- Android学习笔记11:图像的平移、旋转及缩放
- Open CV实现图像的旋转,平移,缩放
- 图像几何运算 平移,镜像,缩放
- matlab 图像几何变换 平移、旋转、缩放
- Matlab 图像平移、旋转、缩放、镜像
- matlab 图像几何变换 平移、旋转、缩放
- ...支持缩放平移的图
- 网络流
- android emulator虚拟设备分析第四篇之framebuffer
- iOS 类别和扩展(Category和Extension)
- ZigBee协议中的规范(Profile)和簇(Cluester)的概念
- ToolBar+DrawerLayout实现MD设计效果
- 图像的平移,缩放..
- React Native 入门上手须知
- MySQL5.7.12新密码登录方式及密码策略
- Caffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 )
- CoordinatorLayout布局的简单实用
- CSS3动画属性 - animation整理
- Android 性能优化系列总篇 (五)
- 使用chrome浏览器和genymotion来调试ionic
- SQLite简介、常用SQL语句、SQL使用速查