图片保存到手机系统相册中的方法

//保存文件到指定路径
 public static boolean saveImageToGallery(Context context, Bitmap bmp) {
 // 首先保存图片
 String storePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "dearxy";
 File appDir = new File(storePath);
 if (!appDir.exists()) {
 appDir.mkdir();
 }
 String fileName = System.currentTimeMillis() + ".jpg";
 File file = new File(appDir, fileName);
 try {
 FileOutputStream fos = new FileOutputStream(file);
 //通过io流的方式来压缩保存图片
 boolean isSuccess = bmp.compress(Bitmap.CompressFormat.JPEG, 60, fos);
 fos.flush();
 fos.close();
  
 //把文件插入到系统图库
 //MediaStore.Images.Media.insertImage(context.getContentResolver(), file.getAbsolutePath(), fileName, null);
  
 //保存图片后发送广播通知更新数据库
 Uri uri = Uri.fromFile(file);
 context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri));
 if (isSuccess) {
 return true;
 } else {
 return false;
 }
 } catch (IOException e) {
 e.printStackTrace();
 }
 return false;
 }
 }
在Vue.js,将H5网页内的图片下载保存到用户手机相册,可以借助HTML5提供的`<a>`标签以及一些JavaScript库如FileSaver.js或Blob.js来实现。以下是一个简单的步骤: 1. **创建下载链接**: 使用`download`属性为图片添加一个点击事件,触发下载。例如: ```html <img :src="yourImageUrl" @click="downloadImage"> ``` 在JS,定义downloadImage方法: ```javascript methods: { downloadImage() { const imgElement = document.querySelector('img'); const url = imgElement.src; this.download(url); }, download(url) { const aLink = document.createElement('a'); aLink.href = URL.createObjectURL(new Blob([url], { type: 'image/jpeg' })); aLink.download = 'image.jpg'; // 自定义文件名 aLink.click(); URL.revokeObjectURL(aLink.href); // 防止内存泄漏 } } ``` 2. **兼容性处理**: - 对于旧版浏览器,可能需要引入FileSaver.js等库,它能提供跨浏览器的Blob和URL API支持。 - 为了更好地适配移动设备,可以在iOS上使用`window.navigator.msSaveOrOpenBlob`,而在Android上通常无需特别处理,因为大部分现代浏览器已经支持。 3. **安全提示**: 提醒用户确认是否允许网站访问他们的照片库。这通常通过在下载前显示警告或者使用浏览器的API(如`navigator.mediaDevices.requestMediaDevices()`)来请求权限。 ```javascript // iOS警示 if (navigator.userAgent.match(/iP(hone|od|ad)/)) { const granted = await new Promise((resolve) => { if (Notification.permission === 'granted') { resolve(); } else { Notification.requestPermission().then(resolve); } }); } // 开始下载 this.download(url); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值