android图片处理总结,关于Android图片处理的总结

1.给图片创建存放的路径

首先要获取修改SD卡的权限

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

if (getActivity().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {

requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, CHOOSE_PICTURE);

}

}

创建文件夹

// 新建一个用来存储照片的文件夹

File destDir = new File(Environment.getExternalStorageDirectory() + path);

if (!destDir.exists()) {

destDir.mkdirs();

}

将图片保存到文件夹

File file = new File(path + "head1.jpg");

if (file.exists()){

file.delete();

}

try {

out = new FileOutputStream(file);

bitmap.compress(Bitmap.CompressFormat.JPEG,100,out);

}catch (Exception e){

e.printStackTrace();

return;

}finally {

try {

out.flush();

out.close();

}catch (Exception e){

e.printStackTrace();

return;

}

将图片从路径取来放到界面

Bitmap bt = BitmapFactory.decodeFile(path + "head1.jpg");//已知的路径,将图片转成Bitmap

Drawable drawable = new BitmapDrawable(bt);//将Bitmap转化成drawable

personImg.setImageDrawable(drawable);//放放上图片

2.用Bade64对图片进行编解码

将图片转化成Bitmap并加密成String

private void uploadPic(Bitmap bitmap) {

Bitmap bt = BitmapFactory.decodeFile(path + "head1.jpg");//根据路径将图片转化为Bitmap

ByteArrayOutputStream bos = new ByteArrayOutputStream();//

//bt.compress(Bitmap.CompressFormat.JPEG,50,bos);//压缩

headpicture = Base64.encodeToString(bos.toByteArray(),Base64.DEFAULT);//转换成String

//在此可以将String上传服务器}

将String类型解码并放到布局中

Bitmap getBitmap = null;

try {

byte[] bitmapArray;

bitmapArray = Base64.decode(getheadpicString,Base64.DEFAULT);//getheadpicString为经过Base64加密过的图片

getBitmap = BitmapFactory.decodeByteArray(bitmapArray,0,bitmapArray.length);//将String解码为Bitmap

Drawable dra = new BitmapDrawable(getBitmap);//将Bitmap转化为Drawable

personImg.setImageDrawable(dra);//放上图片

}catch (Exception e){

e.printStackTrace();

}

以上就是目前我所接触的对图片处理的方法,希望大家指出错误,共同进步!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 中使用 Retrofit 上传图片可以通过 `@Multipart` 和 `@Part` 注解实现。以下是 Retrofit 2.0 实现图文上传的方法总结: 1. 添加依赖库 在项目的 `build.gradle` 文件中添加以下依赖库: ```groovy implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation 'com.squareup.retrofit2:converter-scalars:2.9.0' ``` 2. 创建 Retrofit 实例 ```java Retrofit retrofit = new Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .build(); ``` 3. 创建 API 接口 ```java public interface ApiService { @Multipart @POST("upload") Call<ResponseBody> upload( @Part("description") RequestBody description, @Part MultipartBody.Part file); } ``` 其中,`@Multipart` 注解表示这是一个包含文本和文件的表单;`@POST("upload")` 表示上传的 URL 地址;`@Part("description") RequestBody description` 表示上传的文本参数,`description` 是参数名,可以自己定义;`@Part MultipartBody.Part file` 表示上传的文件参数。 4. 创建请求参数 ```java File file = new File(filePath); RequestBody requestFile = RequestBody.create(MediaType.parse("image/*"), file); MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), requestFile); RequestBody description = RequestBody.create(MediaType.parse("multipart/form-data"), "description"); ``` 5. 发送网络请求 ```java ApiService apiService = retrofit.create(ApiService.class); Call<ResponseBody> call = apiService.upload(description, body); call.enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { // 成功上传后的处理 } @Override public void onFailure(Call<ResponseBody> call, Throwable t) { // 上传失败后的处理 } }); ``` 以上就是 Retrofit 2.0 实现图文上传的方法总结。注意,在 `AndroidManifest.xml` 文件中需要添加网络权限: ```xml <uses-permission android:name="android.permission.INTERNET" /> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值