Android裁剪头像上传到远程服务器
来源:互联网 发布:win7开机时间优化 编辑:程序博客网 时间:2024/05/01 10:29
梳理一下从中学习的知识点。欢迎大家一起交流。
android从图库选择图片或者拍照后对图片进行裁剪,裁剪后上传到腾讯云服务器。
// 从图库选择按钮
public void tuku(View v) {
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
// intent.setType("image/*");
startActivityForResult(intent, tuku);
}
定义一个标记变量:private static int tuku = 2;
选择后执行onActivityResult事件:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//如果点击的从图库选择的按钮
if (requestCode == tuku) {
//判断是否选择了图片
if (data == null) {
return;
}
//在这里得到图片的url,这里得到的是contenturl需要将其转化为fileurl;
Uri uri = data.getData();
try {
Uri fileuri = conver(uri);//url转化方法
startZoom(fileuri);//调用系统裁剪头像
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (requestCode == caijian) {
if (data == null) {
return;
}
Bundle bundle = data.getExtras();
Bitmap bitmap = bundle.getParcelable("data");
round.setImageBitmap(bitmap);//将图片绑定控件
}
}
///前方高能////////////////////////
// 将bitamp转化为file类型的uri
private Uri savebitmap(Bitmap bitmap) {
File file = new File(Environment.getExternalStorageDirectory()
+ "/touxiang.ceshi");
if (!file.exists()) {
file.mkdir();
}
File ima = new File(file.getAbsoluteFile() + "test.png");
try {
FileOutputStream fileOutputStream = new FileOutputStream(ima);
bitmap.compress(Bitmap.CompressFormat.PNG, 95, fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
return Uri.fromFile(ima);
} catch (FileNotFoundException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
// 将contenturi转化为fileuri
private Uri conver(Uri uri) throws IOException {
InputStream inputStream = null;
try {
inputStream = getContentResolver().openInputStream(uri);
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
inputStream.close();
return savebitmap(bitmap);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
// 图像裁剪
private void startZoom(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 500);
intent.putExtra("outputY", 500);
intent.putExtra("return-data", true);
startActivityForResult(intent, caijian);
}
// 上传监听事件
public void up(View v) {
Bitmap bm = ((BitmapDrawable) round.getDrawable()).getBitmap();
if (bm==null) {
Toast.makeText(MainActivity.this, "未选择头像", 0).show();
}
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 90, stream);
byte [] bytes=stream.toByteArray();
String ima=new String(Base64.encodeToString(bytes, Base64.DEFAULT));
AsyncHttpClient asyncHttpClient=new AsyncHttpClient();
RequestParams params=new RequestParams();//保存传入的参数
params.add("img", ima);
asyncHttpClient.post("服务端url", params,new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "上传成功", 0).show();
}
@Override
public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "上传失败", 0).show();
}
});
};
/******************************服务端代码就比较简单了****************************//
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>上传图片至服务器</title>
</head>
<body>
<?php
$filename=date("YmdHis");
$file=fopen($filename.".png", "w");
$data=base64_decode($_POST['img']);
fwrite($file, $data);
fclose($file);
?>
</body>
</html>
欢迎大家加我的qq:1306214077和我一起交流,尊重原创!
- Android裁剪头像上传到远程服务器
- android裁剪头像上传
- Android 测试上传头像到服务器
- Android 上传头像(文件)到服务器
- // 上传头像到服务器
- 上传头像到服务器
- Android_头像裁剪上传(客户端+服务器)
- Android上传头像代码,相机,相册,裁剪
- Android 关于头像裁剪上传的实现
- Android获取图片、裁剪、压缩、上传头像
- Android头像的选择并上传到阿里云服务器
- phonegap头像裁剪上传
- iOS 上传头像 裁剪
- java头像裁剪上传
- iOS ---上传头像 裁剪
- iOS 头像裁剪上传
- Vue头像上传,裁剪
- iOS上传图片或者头像到服务器。
- java TCP/IP Socket编程-----基本套接字-----TCP套接字通讯-----笔记5
- 二维线段树(模板)+HDU 4819
- Hdu2008
- python数字转换成中文/数字转换成汉字python:纯字符串方法最优
- 关于shell小发现
- Android裁剪头像上传到远程服务器
- 基于maven的Spring + Spring MVC + MyBatis 环境配置
- ariprog-section1.4
- 软件工程
- I2C设备驱动(四)-- 调试问题
- 接口的概念
- |poj 2299|权值线段树|Ultra-QuickSort
- eclipse创建maven项目
- 【网易云课堂】Java语言程序设计进阶----第一周编程作业