當前位置:首頁 » 文件管理 » 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相冊封面拼圖」即可。

熱點內容
ug如何載入伺服器 發布:2024-10-11 06:10:40 瀏覽:566
python3小程序 發布:2024-10-11 06:07:10 瀏覽:106
資料庫無法添加數據 發布:2024-10-11 06:04:16 瀏覽:744
付費系統源碼 發布:2024-10-11 05:42:53 瀏覽:257
電腦都有哪些配置參數 發布:2024-10-11 05:42:49 瀏覽:340
ftp耗流量 發布:2024-10-11 05:36:59 瀏覽:652
c語言輸出十六進制數 發布:2024-10-11 05:36:58 瀏覽:399
Q3X如何重置密碼 發布:2024-10-11 05:32:17 瀏覽:190
iis自帶的ftp 發布:2024-10-11 05:32:15 瀏覽:811
php連接mysql文件 發布:2024-10-11 05:29:00 瀏覽:861