3

と の間に違いはCGImageGetWidth(workingImage.CGImage)ありworkingImage.size.widthますか? 最初のほうが速いですか、それとも安全ですか? 2 番目のケースでは値を直接取得することを知っています。

4

2 に答える 2

6

実際には、どちらも同じ結果を返します。CGImageGetWidth(Image.CGImage)Bitmap イメージの幅をImage.size.width返し、UIImage の幅を返します。あなたが安全/高速について尋ねると、最初のものはApplicationServicesフレームワークから来ており、2番目はUIKitフレームワークから来ているので速いと思います. これがあなたに役立つことを願っています..

于 2012-10-18T12:30:26.750 に答える
5

が であると仮定するimageと、幅はピクセル単位でUIImage *返されますが、幅は画面座標で返されます。つまり、ピクセル幅を で割った値です。これは通常、現在のディスプレイの倍率 (ほとんどの Retina デバイスでは 2、iPhone 6 Plus では 3) です。ただし、画像の作成方法によっては、任意の値になる場合があります。CGImageGetWidth(image.CGImage)image.size.widthimage.scale

objc_msgSend()パフォーマンスに関しては、どちらも 1つを含むため、どちらも同じであると思います。image.sizeはサイズを取得するためのimage.CGImageメソッド呼び出しであり、CGImageRef. これらは保存されたプロパティであるため、いずれの場合でもフェッチするのに費用はかかりません。

于 2016-02-15T12:43:23.537 に答える