如何知道ImageSource是jpg还是png文件

时间:2019-02-05 12:38:14

标签: angular nativescript

我的应用程序允许用户将个人资料图片从该应用程序上传到我的服务器。它适用于.png文件,但不适用于.jpg文件。

我做什么:

  1. 使用ImagePicker允许用户选择图像。
  2. 向用户显示可用图像。
  3. 当用户点击“保存”时将所选图像存储在本地
  4. 在云中上传图像

问题出在步骤3,我不知道该如何将文件另存为png或jpg。

glusterfs
    startSelection(context: ImagePicker) {
        context
            .authorize()
            .then(() => {
                return context.present();
            })
            .then(selection => {
                selection.forEach(selectedItem => {
                    ImageSource.fromAsset(selectedItem).then(imageSource => {
                        this.imageUrls.push(imageSource);
                        this.selectedUrlIndex = this.imageUrls.length - 1;
                    });
                });
            })
            .catch(err => {
                // ...
            });
    }

我的问题是在 onSave(): void { const folder = fs.knownFolders.documents(); const path = fs.path.join(folder.path, 'avatar.png'); const saved = this.getSelectedAvatar().saveToFile(path, 'png'); this.userService .sendImages(path) .then(() => { // ... }); } 这一行,getSelectedAvatar返回一个ImageSource

1 个答案:

答案 0 :(得分:1)

看着the docs for the "saveToFile" method,我认为这并不重要。您可以尝试选择一个jpeg,然后查看是否可以将其保存为png(反之亦然)。

(更新) 由于this comment in the source code表示ImageSource可以是UIImage for iOS and android.graphics.Bitmap for Android,因此您应该能够以自己喜欢的格式保存,而与输入无关。您也许还可以使用ios中的androidImageSource字段来获取有关图像(see this link)的更多信息。