如何在科尔多瓦相机中保存自定义名称的照片

Posted

技术标签:

【中文标题】如何在科尔多瓦相机中保存自定义名称的照片【英文标题】:How to save photos with custom name in cordova camera 【发布时间】:2017-09-20 20:10:43 【问题描述】:

我想知道是否有办法给我用科尔多瓦相机拍摄的照片命名,如果我可以像从相册中搜索一样,用名字搜索,比如 photoName.jpg = mysearch

这是我用来拍照的服务。

        var _takePhotoOff = function(url) 
        return $q(function(resolve, reject) 
            var options = 
                quality: 50,
                destinationType: Camera.DestinationType.FILE_URI,
                sourceType: Camera.PictureSourceType.CAMERA,
                allowEdit: true,
                popoverOptions: CameraPopoverOptions,
                saveToPhotoAlbum: true
            ;
            $cordovaCamera.getPicture(options).then(function(imageData) 
                var photo = 
                    url: url,
                    photo: imageData
                
                resolve(photo);
            );

        );
    

【问题讨论】:

devdactic.com/how-to-capture-and-store-images-with-ionic 【参考方案1】:

您无法从插件中指定图像的名称,但您会在imageData 对象中找到包含文件名的图像信息,并且使用cordova-plugin-file 插件您可以访问和重命名文件。

【讨论】:

@MarioVillalobos 你是怎么解决这个问题的?它是科尔多瓦插件文件吗?如果是其他解决方案。请评论或提供链接参考 @ShrinuNamburu 我改变了我的大部分代码,但是插件文件有办法改变cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/… @MarioVillalobos 如果您可以发布重命名特定文件的解决方案,这将非常有帮助。【参考方案2】:

我会这样做

import  Injectable  from '@angular/core';
import  Camera  from '@ionic-native/camera';
import  FilePath  from '@ionic-native/file-path';
import  File  from '@ionic-native/file';

@Injectable()
export class CameraHandlerProvider 

  constructor(private camera: Camera, private filePath: FilePath, private file: File ) 

    

    config = 
        quality: 100,
    destinationType: this.camera.DestinationType.FILE_URI,
    encodingType: this.camera.EncodingType.JPEG,
    mediaType: this.camera.MediaType.PICTURE
    

    getPic(fileName: string) 
        this.camera.getPicture(this.config).then((imageData) => 
            this.filePath.resolveNativePath(imageData)
            .then((path) => 
                console.log(imageData, path);
                let imagePath = path.substr(0, path.lastIndexOf("/") + 1);
                let imageName = path.substring(path.lastIndexOf("/") + 1, path.length);
                this.file.moveFile(imagePath, imageName, this.file.dataDirectory, fileName)
                .then(newFile => 
                    console.log(newFile);
                )
                .catch(err => 
                    console.error(err);
                )
            )
            .catch((err) => 
                console.error(err);
            )
        ).catch((err) => 
            console.error(err);
        );
    

【讨论】:

以上是关于如何在科尔多瓦相机中保存自定义名称的照片的主要内容,如果未能解决你的问题,请参考以下文章

Android - 通过 Intent 拍摄照片并使用自定义名称将它们保存到自定义目的地

如何在 Android 中使用自定义文件名保存相机拍摄的图像?

始终将屏幕截图保存在“照片”中相同的自定义名称应用相册中

iOS:自定义相机如何始终以正确的方向保存图像?

如何在android中计算自定义相机中的剩余照片数量

照片和视频未保存在我的自定义相册中