欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS像素對齊概念解析

 更新時間:2016年09月21日 08:39:54   作者:huahuahu  
這篇文章主要為大家詳細介紹了iOS像素對齊概念,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在iOS中,有一個概念叫做像素對齊,如果像素不對齊,那么在GPU渲染時,需要進行插值計算,這個插值計算的過程會有性能損耗。 

在模擬器上,有一個選項可以把像素不對齊的部分顯示出來。

邏輯像素與物理像素

在iOS設備上,有point(邏輯像素)的概念,以及pixel(物理像素)的概念。
 在編程序時,用的是point,實際渲染時用的是pixel。一個point可以對應多個pixel。
 point和pixel的比例是可以通過[[UIScreen mainScreen] scale]來制定。

UIImage的scale概念 

If you load an image from a file whose name includes the @2x modifier, the scale is set to 2.0. You can also specify an explicit scale factor when initializing an image from a Core Graphics image. All other images are assumed to have a scale factor of 1.0. 

image也有size的概念。

This value reflects the logical size of the image and takes the image's current orientation into account. Multiply the size values by the value in the scale property to get the pixel dimensions of the image. 

就是說image的size和image和scale相乘,得到物理像素的大小。

問題

那么像素不對齊指的是物理像素(pixel)和邏輯像素(point)對齊呢?

實驗

使用300*225像素的png圖片。分別使用不同的方法load到內存中,得到不同的size和scale,然后放在不同size的imageview里。使用color misaligned images來判定是否像素對齊。
 這里模擬器使用的iPhone 6,屏幕的 scale是2。

部分代碼

  NSLog(@"screen scale is %f",[[UIScreen mainScreen] scale]);
  UIImage *image = [UIImage imageNamed:@"test.png"];
  NSLog(@"image size %@, scale %f ", [NSValue valueWithCGSize:image.size], image.scale);
  UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
//  imageView.frame = CGRectMake(50, 100, imageView.bounds.size.width * 2/3, imageView.bounds.size.height * 2/3);
  imageView.frame = CGRectMake(50, 100, imageView.bounds.size.width, imageView.bounds.size.height);
  NSLog(@"imageView frame %@", [NSValue valueWithCGRect:imageView.frame]);
  [self.view addSubview:imageView];

 結論
 1.所謂的像素對齊,指的是物理像素對齊。
 2.如果是2x的圖像,放在3x的屏幕上(6sp),也會發(fā)生像素不對齊的情況。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • iOS中常用的宏定義總結

    iOS中常用的宏定義總結

    這篇文章主要給大家介紹了關于iOS中常用的宏定義的相關資料,例如UI元素、Log、系統(tǒng)、顏色類等等的示例代碼,文中介紹地方非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-08-08
  • 淺析iOS中視頻播放的幾種方案

    淺析iOS中視頻播放的幾種方案

    還記得剛學iOS的時候嗎?那個時候驚訝于各種牛逼的功能只需要幾句簡單的代碼就可以完成。視頻播放也是這樣,IOS中視頻播放有好幾種方式,這篇文章就給大家整理這幾種方案優(yōu)缺點與實現(xiàn)過程。
    2016-08-08
  • ios Plist文件配置方法

    ios Plist文件配置方法

    下面小編就為大家分享一篇ios Plist文件配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • C++ 中exit(),_exit(),return,abort()函數(shù)的區(qū)別

    C++ 中exit(),_exit(),return,abort()函數(shù)的區(qū)別

    這篇文章主要介紹了C++ 中exit(),_exit(),return,abort()函數(shù)的區(qū)別的相關資料,需要的朋友可以參考下
    2016-12-12
  • iOS-GCD詳解及簡單使用

    iOS-GCD詳解及簡單使用

    這篇文章主要介紹了iOS-GCD詳解的相關資料,并附簡單的實例代碼,幫助大家學習理解此部分的知識,需要的朋友可以參考下
    2016-11-11
  • iOS如何獲取最頂層ViewController詳解

    iOS如何獲取最頂層ViewController詳解

    這篇文章主要給大家介紹了關于iOS如何獲取最頂層ViewController的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • iOS 中事件的響應鏈和傳遞鏈

    iOS 中事件的響應鏈和傳遞鏈

    iOS事件鏈有兩條:事件的響應鏈;Hit-Testing事件的傳遞鏈。這篇文章主要介紹了iOS 中事件的響應鏈和傳遞鏈,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Objective-C的入門學習筆記

    Objective-C的入門學習筆記

    Objective-C過去一直以來都是iOS應用程序開發(fā)的主要支持語言,雖然現(xiàn)在有了Swift,但需要調用的很多現(xiàn)有類庫還是Objective-C寫成的,值得學習,下面一起來看一下這份粗淺的Objective-C的入門學習筆記:
    2016-05-05
  • iOS 底部按鈕和應用圖標顯示未讀消息(帶數(shù)字)

    iOS 底部按鈕和應用圖標顯示未讀消息(帶數(shù)字)

    本文主要介紹了iOS 底部按鈕和應用圖標顯示未讀消息的相關知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • ios使用NSProxy實現(xiàn)消息轉發(fā)

    ios使用NSProxy實現(xiàn)消息轉發(fā)

    本文主要介紹了ios使用NSProxy實現(xiàn)消息轉發(fā),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07

最新評論