照相机图片加水印
来源:互联网 发布:大数据未来展望 编辑:程序博客网 时间:2024/05/01 06:42
读写sd卡文件必须首先要在Mainifest.xml文件中配置权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
package com.dzl.camera;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Date;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Bitmap.CompressFormat;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends Activity { /** Called when the activity is first created. */private Button button;private ImageView iv;private final int CAPTURE_CODE = 100;private String localTempImgDir ="TEMP";private String localTempImgFileName = "TEMP"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button = (Button)findViewById(R.id.button); iv = (ImageView)findViewById(R.id.imageView1); button.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//得到文件目录File dir = new File(Environment.getExternalStorageDirectory()+"/");File f = new File(dir,localTempImgFileName);Uri ur = Uri.fromFile(f);Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);intent.putExtra(MediaStore.Images.Media.ORIENTATION, 0);intent.putExtra(MediaStore.EXTRA_OUTPUT, ur);startActivityForResult(intent,CAPTURE_CODE);} }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if(resultCode!=RESULT_OK) { return; }else if(requestCode==CAPTURE_CODE && resultCode==Activity.RESULT_OK) { File f = new File(Environment.getExternalStorageDirectory()+"/"+localTempImgFileName); try {Uri u = Uri.parse(android.provider.MediaStore.Images.Media.insertImage(getContentResolver(), f.getAbsolutePath(), null, null));Bitmap cbitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), u);File dir = new File(Environment.getExternalStorageDirectory().getCanonicalPath()+"/DCIM/Camera");if(!dir.exists()){dir.mkdir();}String picName = dir.getAbsolutePath()+"/"+"ZTEPIC_"+System.currentTimeMillis()+".jpg";File file = new File(picName);FileOutputStream outStream = new FileOutputStream(file);String zte = "照片拍摄:"+new Date();Bitmap zteBitmap = Bitmap.createBitmap(cbitmap.getWidth(),cbitmap.getHeight(),Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(zteBitmap);Paint p = new Paint();p.setTextSize(10);canvas.drawBitmap(cbitmap, 0, 0,p);canvas.drawText(zte, cbitmap.getWidth()-200, cbitmap.getHeight()-100, p);zteBitmap.compress(CompressFormat.JPEG, 100, outStream);iv.setImageBitmap(zteBitmap); } catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} } /*if(resultCode == Activity.RESULT_OK) { String sdStatus = Environment.getExternalStorageState();//sd状态 if(!sdStatus.equals(Environment.MEDIA_MOUNTED))//检测sd卡是否可用 { return; } Bundle bundle = data.getExtras(); Bitmap bitmap = (Bitmap)bundle.get("data");//照相机返回的数据转换成bitmap格式 FileOutputStream b = null; File file = new File("/sdcard/myImage"); file.mkdirs();//创建文件夹 SimpleDateFormat format = new SimpleDateFormat("yyMMddHHMMSS"); String date = format.format(new Date()); String fileName = "/sdcard/myImage/"+date+".jpg"; try {b = new FileOutputStream(fileName);String zte="ZTE";Bitmap zteBitmap = Bitmap.createBitmap(cb)bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);//把数据写入文件 Canvas canvas = new Canvas(bitmap);canvas.drawBitmap(bitmap, 0, 0, null); Paint p = new Paint(); p.setColor(Color.YELLOW); p.setTextSize(30); canvas.drawText("拍摄时间:"+date, 30, 50, p); canvas.save(Canvas.ALL_SAVE_FLAG); canvas.restore(); } catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {b.flush();b.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}iv.setImageBitmap(bitmap); } */ } }
- 照相机图片加水印
- jsp加图片水印
- 图片加水印类
- 图片加水印
- 图片加水印类
- ASP图片加水印
- 图片加水印
- 给图片加水印
- 图片加水印
- 图片加水印
- C# 图片加水印
- 给图片加水印
- 图片加水印
- .net图片加水印
- 图片加水印
- 给图片加水印
- 图片加水印
- 给图片加水印
- X86汇编语言学习手记
- VC:使用可变参数宏
- android 得到listview 当前一屏的child个数
- gawk not found
- C++利用CStdioFile从txt文件中读取数据
- 照相机图片加水印
- mulitmedia caps
- ERROR 1045 (28000): Access denied for user 'axt'@'localhost' (using password: YES)解决
- Android学习笔记:Android客户端采用Hessian进行异步请求
- JQuery DOM加载与事件执行
- 汇编语言学习:Debug的使用
- JavaScript工作原理
- JDBC总结
- VC编译错误:uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPA