当前位置:首页 » 文件管理 » android拍照裁剪上传

android拍照裁剪上传

发布时间: 2022-09-12 20:31:36

❶ android开发怎么实现拍照上传

这个其实是一个很泛的问题

我大致说下我的思路:

  1. 用startactivityforresult方法调用系统的摄像头,随便拍张照片,把照片保存在某一目录下面

  2. 点击完成后,会在onactivityresult中,根据目录的地址,再把这目录下面的资源得转换为文件,接着通过接口进行提交。提交成功后,后台返回一个URL。

  3. 通过这个URL,运用imageload(第三方插件)显示图片

❷ android 开发中获取sd卡或照相机的照片怎样裁剪呈圆形

需要用到类似QQ头像选择的一个功能,让用户从手机图片或者自己拍照并图图像大小剪裁之后选择,当时觉得很实用,但是自己不知道怎么实现。
最近参考同事写的代码并自己在网上查阅了相关信息,发现大概都是同样的方式,自己简单整合了一下,可以实现基本的功能,至于上传方面还没有深入研究。

❸ 为啥android拍照后的裁剪界面闪了一下就消失了

步骤:点击按钮,弹出对话框,选择拍照或者从相册选择图片,并且保存到SD卡中,并且显示在Imageview中
首先最终结果存在了imageUri中,但从拍照Intent到裁剪Intent之间结果是怎么传的呢?估计是通过Intent中的data来传的,当数据过大,即超过1M时就崩了!!!!所以我们要想办法分离这个过程,将中间数据先暂存一下放在imageUri ,然后再调裁剪Intent,最后把结果存在imageCropUri 中。
这样就完美解决拍照裁剪图片完成之后崩溃问题。

❹ Android如何进行图片编辑

裁剪选取或拍摄的图片
public static void cropphoto(Fragment fragment, Uri uri){ //设置裁剪图片保存位置 File bomb=new File(fragment.getContext().getExternalCacheDir(),"bmob"); Log.d("tag", "cropphoto: "+bomb); if (!bomb.exists()){ bomb.mkdir(); } File file=new File(bomb,"user_icon.jpg"); if (!file.exists()){ try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } Intent intent=new Intent("com.android.camera.action.CROP");//intent隐式调用启动拍照界面 intent.setDataAndType(uri,"image/*");//设置需要裁剪的图片地址 intent.putExtra("crop", "true");//通过put(key,value)方法设置相关属相 intent.putExtra("aspectX", 1);//设置图片宽高比例 intent.putExtra("aspectY", 1); intent.putExtra("outputX", 240);//设置图片宽高 intent.putExtra("outputY", 240); intent.putExtra("return-data", false);//该属性设置为false表示拍照后不会将数据返回到onResluet方法中(建议设置为false,这样获取的图片会比较清晰) intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));//该属性设置的是拍照后图片保存的位置 intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());//设置输出格式 intent.putExtra("noFaceDetection", true);//是否取消人脸识别 /*ComponentName componentName = intent.resolveActivity(context.getPackageManager()); Log.d("TAG", "cropphoto: "+componentName); if (componentName!=null){ fragment.startActivityForResult(intent,Variable.request_crop); }*/ fragment.startActivityForResult(intent,Variable.request_crop); }

❺ 如何调用android的拍照或本地相册选取,然后再实现相片上传服务器

首先是拍照:使用Intent即可,

[java] view plainprint?
01.final String start = Environment.getExternalStorageState();
02.private static final String PHOTOPATH = "/photo/";
03.
04.if(start.equals(Environment.MEDIA_MOUNTED)){
05.Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
06.File file = new File(Environment.getExternalStorageDirectory()+PHOTOPATH);
07.if(!file.exists()){
08.file.mkdirs();
09.}
10.tempphontname = System.currentTimeMillis()+".jpg";
11.buffer.append(Environment.getExternalStorageDirectory()+PHOTOPATH).append(tempphontname);
12.intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(buffer.toString())));
13.startActivityForResult(intent, 1);
14.}
final String start = Environment.getExternalStorageState();
private static final String PHOTOPATH = "/photo/";

if(start.equals(Environment.MEDIA_MOUNTED)){
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory()+PHOTOPATH);
if(!file.exists()){
file.mkdirs();
}
tempphontname = System.currentTimeMillis()+".jpg";
buffer.append(Environment.getExternalStorageDirectory()+PHOTOPATH).append(tempphontname);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(buffer.toString())));
startActivityForResult(intent, 1);
}
其次是从本地相册选:依旧是Intent.

如下代码:

[java] view plainprint?
01.if(start.equals(Environment.MEDIA_MOUNTED)){
02. Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);
03. getImage.addCategory(Intent.CATEGORY_OPENABLE);
04. getImage.setType("image/jpeg");
05. startActivityForResult(getImage, 0);
06.}
if(start.equals(Environment.MEDIA_MOUNTED)){
Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);
getImage.addCategory(Intent.CATEGORY_OPENABLE);
getImage.setType("image/jpeg");
startActivityForResult(getImage, 0);
}

接下来是主要的:因为调用完系统的方法后,回返回到回调方法onActivityResult(int, int, Intent)中,

在里面进行主要的照片上传服务器的操作,

见代码:

[java] view plainprint?
01.@Override
02. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
03. ContentResolver resolver = getContentResolver();
04. if(requestCode==1)//
05. {
06. if(resultCode==Activity.RESULT_OK)
07. {
08. if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
09. {
10.ew Thread(new Runnable()
11. {
12. @Override
13. public void run() {
14.//进行上传操作
15.}
16.}.start();
转载

❻ 做了一个Android的demo实现头像裁剪上传,但是拍照完成后出现如下图问题,图库也一样大神们帮忙看看

实现思维路径:
以进入相机拍照的思维路线为例子:
1.进入app
2.判断之前是否保存头像,如果有就显示历史图像 (下面代码中在getOldAvatar();方法中执行这个逻辑)
3.点击更换图像的Button或者布局,启动对话框(下面代码中在dialogueBox();方法执行这个逻辑)
4.系统版本判断授权方式(静态还是动态授权),判断之前是否已经授权 (setPermissions(Permissions_CAMERA_KEY);这个方法执行授权逻辑)
5.如果是首次授权,就执行首次授权完成后马上运行的回调方法 onRequestPermissionsResult
5.判断完成不管是否是首次授权还是之前就是授权过了都要执行enterCamera();方法启动相机并且发送携带数据的请求
6.启动相机完成后,并且拍照完成退出相机,都要运行Intent返回数据请求回调方法onActivityResult。将传入的数据传入到cropPhoto(data.getData());方法里去执行图片剪裁。
7.在cropPhoto方法里将携带数据跳转到裁剪界面中裁剪图片,裁剪完成后又要回到onActivityResult回调方法里,执行裁剪完的数据回调工作。

8.在onActivityResult回调方法里,裁剪完的图片将运行setPicToView 方法保存图片。保存的图片将在下次启动activity时作为历史头像调用。

package com.example.lenovo.mydemoapp;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.os.StrictMode;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

❼ 在android开发中,拍照后的图片进行剪切后,怎么保存呢

流,给你一个保存的方法
你应该是拍照以后再onActivityResult中回去图片 再进行操作 得到最终的bitmap 在用下面的方法保存指定图片的路径、名称保存。

// 保存拍摄的照片到手机的sd卡
private void SavePicInLocal(Bitmap bitmap) {
FileOutputStream fos = null;
BufferedOutputStream bos = null;
ByteArrayOutputStream baos = null; // 字节数组输出流
try {
baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] byteArray = baos.toByteArray();// 字节数组输出流转换成字节数组
picName = (list.size() + 1) < 10 ? memberInfoID + "-0"
+ (list.size() + 1) + ".jpg" : memberInfoID + "-"
+ (list.size() + 1) + ".jpg";
File file = new File(PHOTO_DIR, picName);
// 将字节数组写入到刚创建的图片文件中
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(byteArray);

} catch (Exception e) {
e.printStackTrace();

} finally {
if (baos != null) {
try {
baos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}

}

}
这个保存的是缩略以后的 有50k左右,

❽ android使用camera拍照然后对图片进行编辑的问题

你是想实现不同activity之间传值 。
可以有以下方法 :
1sharedpreference如果数据量大,不建议使用它
2文件存储 , 存进去再读出来
3 inten 传值 :
Intent intent = new Intent(this,xxx.class);
Bundle bundle = new Bundler();
Bundle.putString("key","value");
intent.putExtras(bundle);
startActivity(intent);

跳转到另外activity取值 :
Bundle bundle = this.getIntent().getExtras();
bundle.getString("key");
4 建数据库

❾ android拍照图片裁剪的问题

因为没权限就读取不了内部存储的文件啊

❿ 安卓有没有那种裁剪图片的软件,就是可以把一张图片均匀的切成8块的,有哪些

弄张图。
上 网。
选择“图片切割”→ 垂直选择 4、水平选择 2(最多等分36份)→单击‘浏览’(在电脑中找到制作拼图的图片并选中确定)→单击‘上传’→单击图片下面的“ 制作QQ相册封面拼图”即可。

热点内容
php连接mysql文件 发布:2024-10-11 05:29:00 浏览:860
lol浙江省服务器云主机 发布:2024-10-11 05:07:35 浏览:902
安卓抖音没网络怎么设置 发布:2024-10-11 05:07:22 浏览:857
服务器ft测试的是什么 发布:2024-10-11 05:06:50 浏览:109
算法是什 发布:2024-10-11 05:01:46 浏览:176
java图片水印 发布:2024-10-11 04:53:47 浏览:483
linux下mfc编译 发布:2024-10-11 04:43:40 浏览:903
phpfor循环语句 发布:2024-10-11 04:32:55 浏览:869
什么是假的服务器 发布:2024-10-11 04:32:49 浏览:102
笔记本电脑配置够但玩游戏卡怎么办 发布:2024-10-11 04:30:55 浏览:2