我已成功编码相机API以拍摄和保存照片(在iOS上)。但是,我希望照片是方形的(如Instagram)。
我已将targetWidth
和targetHeight
设置为相同的像素,但图像仍然是纵向或横向的,具体取决于手机的握持方式。
我的完整API代码是:
navigator.camera.getPicture(onPhotoDataSuccess, onFail, {
quality: 50,
targetWidth: 600,
targetHeight: 600,
correctOrientation: 1,
saveToPhotoAlbum: 1
});
有没有人知道如何在iOS设备上使用此API保存方形照片?
答案 0 :(得分:2)
在我的测试中,我意识到了同样的事情,但我的意图恰恰相反。我想保留图片的全尺寸,但是当相机打开时,会显示“方形叠加”,暗示只保存正方形内的内容。
然后,我将“allowEdit”参数更改为“false”而不是“true”。现在我可以保存全貌。在你的情况下,我可以看到你没有使用这个参数,所以也许你应该在你的代码中添加它。例如:
navigator.camera.getPicture(onPhotoSuccess, onPhotoFail, {
quality : 40,
allowEdit : false,
destinationType : navigator.camera.DestinationType.DATA_URL,
encodingType : navigator.camera.EncodingType.PNG,
sourceType : navigator.camera.PictureSourceType.CAMERA,
targetWidth : width,
targetHeight : height
});
宽度和高度似乎与纵横比相比与图片的尺寸更相关。
答案 1 :(得分:0)
所以我一直在(仅限iOS)上使用它,因为我想获取方形而不是矩形的照片,这就是我的经验。
设置1
options: CameraOptions = {
quality: 40,
allowEdit: false, // OR unset as to allow default 'false'
cameraDirection: 1, // BACK: 0 FRONT: 1
destinationType: this.camera.DestinationType.DATA_URL,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE,
targetHeight: 200,
targetWidth: 200
}
设置2
options: CameraOptions = {
quality: 40,
allowEdit: true,
cameraDirection: 1, // BACK: 0 FRONT: 1
destinationType: this.camera.DestinationType.DATA_URL,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE,
targetHeight: 200,
targetWidth: 200
}
设置1 是返回矩形照片,并保留了正常的宽高比,且其中一侧(基本上)设置为“ targetHeight”或“ targetWidth”作为最大高度或最大高度-宽度。
DOCS:Take a Picture and Return Thumbnails (Resize the Picture)
要获得较小的图像,您可以通过传递两个 CameraOptions对象的targetHeight和targetWidth值。在 在此示例中,您调整了返回图像的大小以适合100px x 100px 框(保持宽高比,因此100px是高度或 宽度,以来源中较大者为准)。
在设置2 下,照片看起来像是正常的,然后在您选择接受或重新拍摄选项后拍照后,在指定的尺寸上有一个黄色框覆盖在照片,从而在用户批准后显示您的裁剪。因此,这里的区别在于,它最初不会拍摄方形照片,但是会返回一张照片。
请注意,设置2可能无法在ANDROID上运行
allowEdit 在Android上是不可预测的,因此不应使用!的 该插件的Android实现尝试查找并使用 用户设备上的应用程序进行图像裁剪。该插件有 无法控制用户选择执行图像的应用程序 裁剪,用户很可能会选择 不兼容的选项,并导致插件失败。这有时可行 因为大多数设备都带有处理裁剪的应用程序 与该插件(Google Plus Photos)兼容的方式,但是 依靠事实是不明智的。如果图像编辑是 对您的应用程序至关重要,请考虑寻求第三方库 或提供自己的图片编辑工具的插件 强大的解决方案。