图片裁剪_如何裁剪某张图片的某一部分
需求分析:想从相册中获取某张图片,并对图片进行裁剪,然后保存,并发给好友,或上传到微博;
实现思路:
选择图片,通过系统相册启动Activity去显示图片缩略图,并选择图片;
裁剪图片,通过系统相册处理裁剪的Activity去执行;
实现步骤:
1.选择图片 和如何对图片进行缩放是一样的;
2.裁剪图片 通过调用系统的Activity去裁剪;
关键:
拿到系统应用的源码,查看清单文件,去配置Intent,通过查看对应Activity的源码,看看是如何传递图片给activity,又是如何返回图片;
code:
import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
import android.view.View;
import android.widget.ImageView;
public class LoadImage2Activity extends Activity {
private ImageView iv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
iv =(ImageView) findViewById(R.id.iv);
}
//加载
public void loadImage(View view){
long starttime = System.currentTimeMillis();
//Bitmap bitmap =BitmapFactory.decodeFile("/sdcard/img.JPG");
BitmapFactory.Options opts = new Options(); //定义图片的解析的参数对象
opts.inSampleSize = 8; //按照原图的1/8进行图片的解析
//对图片文件进行解码生成位图;也可以通过调用系统的图片浏览应用去获取图片;
Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/img.JPG", opts);
long endtime = System.currentTimeMillis();
long time = endtime - starttime;
System.out.println("解析图片花费了:"+time);
iv.setImageBitmap(bitmap);
}
//裁剪
public void cropImage(View view){
Intent intent = new Intent();
Bundle myExtras = new Bundle();
myExtras.putBoolean("return-data", true);
intent.putExtras(myExtras);
//对意图的目的地进行指明;
intent.setAction("com.android.camera.action.CROP");
intent.addCategory("android.intent.category.DEFAULT");
// intent.setData(Uri.fromFile(new File("sdcard/img.JPG")));
// intent.setType("image/*");
//对意图的携带数据进行uri 和 type进行指定;
intent.setDataAndType(Uri.fromFile(new File("sdcard/img.JPG")),"image/*");
startActivityForResult(intent, 0);
}
//返回当前界面时,把“data”对应的Object,强转成Bitemap,并设置到界面上去显示;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(data!=null){
Parcelable imagedata = (Parcelable) data.getExtras().get("data");
iv.setImageBitmap((Bitmap) imagedata);
}
super.onActivityResult(requestCode, resultCode, data);
}
}
图片裁剪_如何裁剪某张图片的某一部分相关推荐
- python open cv 图片对比_用几十万张图片来拼图!Open CV牛逼不是没有道理的!马赛克拼图...
这是最终得到的效果,如果你的图片集不同,或者参数设置不同,效果也会有差别. 进群:548377875即可获取数十套pdf哦!源码就不分享给大家了! 1,收集图片素材 要做出上述的效果来,首先就需要大量 ...
- 头像裁剪_课堂裁剪|19级油画班油画头像写生作品
班级:贵州师范大学2019级绘画班 课程:<油画头像写生> 指导老师:刘力 课程介绍 <油画头像写生>课:本课程主要研究色,油画色彩及油画色彩规律,通过学习本课使同学们能够掌握 ...
- ImageMagick将多张图片拼接成一张图片_批量裁剪图片、拼接长图、添加水印不想打开ps,你可以试试这款软件...
工作中的需求常会遇到,批量处理一些图片,比如添加水印.压缩图片大小.批量裁剪等需求,ps可能没办法完成批量的操作,下面这款软件由一位摄影师开发,功能包括了图片加水印.长图拼接.富文本制图.尺寸调整.图 ...
- layui鼠标放上图片局部放大_老照片修复教程之—裁剪图片大小
对于会PS的网友来说,这些内容太小白了,但对于不会的网友来说,完全摸不着头脑,所以,41图片老照片修复以最简单的工具使用说起,争取让PS小白也能快速入门. 本节的内容就讲裁剪图片大小: 扫描或者翻拍好 ...
- Android学习笔记19-ImageView实现图片适屏与裁剪
在Android中,要将一张图片显示在屏幕上,需要创建一个显示图片的对象,该对象就是ImageView. 1.ImageView常用属性 要对图片进行适屏裁剪操作,首先需要了解ImageView的常用 ...
- 图片的增强之-裁剪、旋转、放缩
一.图片增强 当我们训练深度学习模型的时候,你的图片数据集可能数量太少或者是有的类别数量过少,你就可以通过对图片进行裁剪.旋转和放缩来完成图片数量的扩充.PS:参考的那篇文章找不到链接了,实在不好意思 ...
- 3、python 视频转图片及图片转视频、裁剪、创建图片压缩成视频
背景:从视频中获取图片,进行数据标注,然后进行训练; 指定文件夹读取视频然后产生相应图片工具 # -*- coding: utf-8 -*- import os import cv2 import o ...
- PhotoShop使用1 - 图片的新建,裁剪,图像大小的修改,移动工具
新建 无特殊情况的话,一般分辨率写300ppi,这样会更清楚,不过同时图像体积占用会变大,对清晰度要求不高的话72ppi也是可以的,背景颜色一般选白色 从剪贴板粘贴图片到PhotoShop(复制某张图 ...
- Android学习笔记19:ImageView实现图片适屏与裁剪
在Android中,要将一张图片显示在屏幕上,需要创建一个显示图片的对象,该对象就是ImageView. 1.ImageView常用属性 要对图片进行适屏裁剪操作,首先需要了解ImageView的常用 ...
最新文章
- layer.js弹窗组件layer.prompt无法调用解决
- 使用git管理源码之文件状态和工作区理解
- Matlab 重命名
- 如何在Marketing Cloud launchpad里添加Contact创建tile
- swift5以上版本的代理的实现,详细教你书写代理
- guid主键 oracle_使用GUID作为数据库主键的测试
- android 开发传输安全,移动应用安全开发指南(Android)--数据传输
- 波士顿动力十年对比刷屏,网友:以后该不会变成终结者吧?
- logback为日志配置颜色
- 网页图片显示分辨率与实际分辨率不一样
- C++银行账户管理程序2
- oracle12c 日志分析,【案例】Oracle 12C日志大量Resize operation completed for file信息
- python驱动photoshop_用Python用Photoshop打开PDF
- 区块链技术入门,涉及哪些编程语言?
- redis系列之数据库与缓存数据一致性解决方案(简单易懂)
- 5.31 综合案例2.0 - 在线音乐盒
- 后台系统的权限控制与管理
- python多线程破解压缩包_我用 Python 破解了同事的加密压缩包!
- 数组下标越界异常是如何产生的
- 图片格式怎么转换?推荐三种实用的转换方法