Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS |如何通过编程识别全景图像_Ios_Swift_Panoramas - Fatal编程技术网

iOS |如何通过编程识别全景图像

iOS |如何通过编程识别全景图像,ios,swift,panoramas,Ios,Swift,Panoramas,是否有任何方法或技术可以识别位图(png/jpeg)实际上是360度全景图像或普通图像。在swift for iOS中,区分全景图像和普通图像的机制是什么。全景图像只是宽高比较大的图像(反之亦然) 没有最小尺寸,但可能会有最大尺寸 标准照片的比例约为4:3,因此您可以找到该比例并确定它是否为全景 您可以执行以下操作: let smallest = min(image.size.width, image.size.height) let largest = max(image.size.width

是否有任何方法或技术可以识别位图(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
}
但是,还要注意的是,在拍摄全景图时,您可以在不移动相机的情况下启动或停止全景图,使其成为普通照片


这就是为什么你必须使用这样的比率。我认为目前还没有这方面的标志。

全景图像有不同的分辨率,它们的比率将是2:14:110: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
具有名为
mediasublities
的属性。只需检查此数组是否包含panorama子类型

if mediaSubtypes.contains(.photoPanorama) {
    // ...
}

查看
PHAsset
及其
媒体子类型
@Cristik如果这对您没有帮助,您可以尝试Ohh抱歉@Nico如果这对您没有帮助,您可以尝试