iOS |如何以编程方式识别全景图像
iOS | How to identify a panoramic image programatically
有什么方法或技巧可以识别位图(png/jpeg)实际上是360度全景图还是普通图。 swift for iOS.
中区分全景图像和普通图像的机制是什么
全景图就是宽高比大(反之亦然)的图片。
没有最小尺寸,但会有最大尺寸(可能)。
标准照片的比例在4:3左右,所以您可以找到比例并确定它是否是全景。
您可以这样做:
let smallest = min(image.size.width, image.size.height)
let largest = max(image.size.width, image.size.height)
let ratio = largest/smallest
let maximumRatioForNonePanorama = 4 / 3 // check with your ratio
if ratio > maximumRatioForNonePanorama {
// it is probably a panorama
}
但是,还要注意,在拍摄全景照片时,您可以在不移动相机的情况下启动和停止它,因此它可以只是一张普通照片。
这就是为什么您必须使用像 this.I 这样的比率的原因,认为还没有这个(还)的标志。
全景图像具有不同的分辨率,它们的比例将是 2:1,4:1 和 10:1 。要识别全景图像,请使用以下代码片段
let smallest = min(YOUR_IMAGE.size.width, YOUR_IMAGE.size.height)
let largest = max(YOUR_IMAGE.size.width, YOUR_IMAGE.size.height)
let ratio = largest/smallest
if (ratio >= CGFloat(2/1)) || (ratio >= CGFloat(4/1)) || (ratio >= CGFloat(10/1)) {
// Panorama image
} else {
//NON -Panorama image
}
希望对您有所帮助
PHAsset
有一个名为 mediaSubtypes
的 属性。只需检查此数组是否包含全景子类型。
if mediaSubtypes.contains(.photoPanorama) {
// ...
}
有什么方法或技巧可以识别位图(png/jpeg)实际上是360度全景图还是普通图。 swift for iOS.
中区分全景图像和普通图像的机制是什么全景图就是宽高比大(反之亦然)的图片。
没有最小尺寸,但会有最大尺寸(可能)。
标准照片的比例在4:3左右,所以您可以找到比例并确定它是否是全景。
您可以这样做:
let smallest = min(image.size.width, image.size.height)
let largest = max(image.size.width, image.size.height)
let ratio = largest/smallest
let maximumRatioForNonePanorama = 4 / 3 // check with your ratio
if ratio > maximumRatioForNonePanorama {
// it is probably a panorama
}
但是,还要注意,在拍摄全景照片时,您可以在不移动相机的情况下启动和停止它,因此它可以只是一张普通照片。
这就是为什么您必须使用像 this.I 这样的比率的原因,认为还没有这个(还)的标志。
全景图像具有不同的分辨率,它们的比例将是 2:1,4:1 和 10:1 。要识别全景图像,请使用以下代码片段
let smallest = min(YOUR_IMAGE.size.width, YOUR_IMAGE.size.height)
let largest = max(YOUR_IMAGE.size.width, YOUR_IMAGE.size.height)
let ratio = largest/smallest
if (ratio >= CGFloat(2/1)) || (ratio >= CGFloat(4/1)) || (ratio >= CGFloat(10/1)) {
// Panorama image
} else {
//NON -Panorama image
}
希望对您有所帮助
PHAsset
有一个名为 mediaSubtypes
的 属性。只需检查此数组是否包含全景子类型。
if mediaSubtypes.contains(.photoPanorama) {
// ...
}