android创建图片资源文件,Android图片添加水印图片并把图片保存到文件存储的实现代码...
具体代码如下所示:
package zhangphil.test;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.os.Bundle;
import android.os.Environment;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class JavaActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.drawable_activity);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
add();
}
});
}
private void add() {
new Thread(new Runnable() {
@Override
public void run() {
File zhang = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "zhang.jpg");
try {
//原图片。
Bitmap bitmap1 = BitmapFactory.decodeStream(new FileInputStream(zhang));
//水印图。
Bitmap bitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.logo);
//原图片添加水印后形成新的文件。
File zhangphil = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "zhangphil.jpg");
if (!zhangphil.exists())
zhangphil.createNewFile();
//原图片添加水印后形成的新Bitmap。在原图片的最左边和做顶部开始添加。
//如果是中间或者底部需要计算x,y的坐标位置。
Bitmap newbitmap = addImageWatermark(bitmap1, bitmap2, 0, 0);
//把添加水印后的Bitmap保存到文件。
save(newbitmap, zhangphil, Bitmap.CompressFormat.JPEG, true);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
/**
* 添加图片水印。
*
* @param src 源图片
* @param watermark 图片水印
* @param x 起始坐标x
* @param y 起始坐标y
* @return 带有图片水印的图片
*/
public static Bitmap addImageWatermark(Bitmap src, Bitmap watermark, int x, int y) {
Bitmap retBmp = src.copy(src.getConfig(), true);
Canvas canvas = new Canvas(retBmp);
canvas.drawBitmap(watermark, x, y, null);
return retBmp;
}
/**
* 保存图片到文件File。
*
* @param src 源图片
* @param file 要保存到的文件
* @param format 格式
* @param recycle 是否回收
* @return true 成功 false 失败
*/
public static boolean save(Bitmap src, File file, Bitmap.CompressFormat format, boolean recycle) {
if (isEmptyBitmap(src))
return false;
OutputStream os;
boolean ret = false;
try {
os = new BufferedOutputStream(new FileOutputStream(file));
ret = src.compress(format, 100, os);
if (recycle && !src.isRecycled())
src.recycle();
} catch (IOException e) {
e.printStackTrace();
}
return ret;
}
/**
* Bitmap对象是否为空。
*/
public static boolean isEmptyBitmap(Bitmap src) {
return src == null || src.getWidth() == 0 || src.getHeight() == 0;
}
}
事先需要先放好源图片Pictures/zhang.jpg和水印图片res/drawable/logo.jpg。
权限:
总结
以上所述是小编给大家介绍的Android图片添加水印图片并把图片保存到文件存储的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
android创建图片资源文件,Android图片添加水印图片并把图片保存到文件存储的实现代码...相关推荐
- android创建布局文件,android学习——Android Studio下创建menu布局文件
一.问题: android studio项目中没有看到menu文件夹: 在android studio项目中想要添加menu布局文件,一开始我的做法是:直接在res文件夹右键选择xml文件来添加,如下 ...
- android 创建assetmanager文件,Android AssetManager
Android AssetManager的创建 本文基于Android 6.0源码分析 AssetManager的类图 我们以一个"Hello World" APK(包名:com. ...
- Android图片添加水印图片并把图片保存到文件存储
Android图片添加水印图片并把图片保存到文件存储 package zhangphil.test;import android.graphics.Bitmap; import android.gra ...
- Android中图片资源格式的是,Android 项目图片资源文件的使用,适配以及优化
Android 项目图片资源文件的使用,适配以及优化 Aandroid,适配,bitmap,bitmapfactory,优化, 2016-05-13 16:52:50 Android 项目中常见的图片 ...
- android xml文件放在哪里,android 创建 xml文件
android创建xml文件的方法. 要操作android的外部存储,所以要在AndroidManifest.xml文件中添加权限. 首先要创建一个XmlSerialize对象. 并创建一个文件,并打 ...
- Android中图片资源文件找不到的问题
最近每天被Google坑,整个人也是不太好... 你们遇到过这样恶心的Log吗?这个.9的资源文件明明就在那里,却说不在.仔细研究,发现竟然是downsampling的时候出了问题. 放在高dpi目录 ...
- android 字体文件压缩,Android创建assets文件夹并使用字体图标(Icon Font)
首先我们要知道如何在AS中新建引用assets文件 1.将项目切换到Project模式 Project.png 2.要注意assets文件夹要跟Java文件在同一目录下,都包含在main的文件下面. ...
- android 创建 file 文件,文本 并写入内容
创建file 文件在android 6.0 之后需要用户手动开启权限下面介绍下使用 这里只是写入内容所以就在配置文件中添加写入的权限, <uses-permission android:name ...
- android 创建多级目录,Android创建文件夹
之前写过一篇博文<Android在SDcard建文件夹(在Android中移动文件必用)>http://xuewei.blog.51cto.com/6061915/1069843 pack ...
最新文章
- 【白皮书分享】2020双十一五大趋势洞察白皮书.pdf(附下载链接)
- weblogic数据源配置oracle and mysql
- 微信小程序 体验版开启调试模式
- java添加word书签,Jacob操作Word书签
- linux svc作用,[svc]linux性能监控
- xHCI1.1-TRB Ring
- 微博SDK 分享以后无法返回
- 监控视频中的主码流和子码流是什么意思?
- win7升级win10后周期性蓝屏问题解决(经过2个月的测试观察,电脑没有再出现蓝屏)
- 输出4+44+444+4444
- 基于ZStack3.0.1(CC2530)和ST7735S的HAL_LCD驱动替换(一)
- 格鲁夫12年前惊人的预言,解释了今天美国对中国芯片所做的一切
- linux磁盘阵列数据恢复,恢复天使免费数据恢复软件
- photoshop做带有透明通道的贴图
- ESD9X5VU-2/TR瞬态电压抑制器WILLSEM ESD9X5VU 1线单向超低电容
- CentOS搭建Terraria服务器
- 共创数字国企丨金蝶云・苍穹应邀参加国有企业数字化转型与发展研讨会
- Java Lambda 分区 例子 水仙花
- AutoIt3病毒杀毒攻略(详)
- IHE测试系列之五:实验室技术框架参考资料