en

hi, it seems you are using microsoft internet explorer. it doesn't match web standard and causes problems browsing this site. please please please use mozilla firefox or google chrome instead. thank you!

zh

哦哦!您正在使用Internet Explorer 瀏覽器,它與我們的網頁標準並不相容,可能會導致畫面顯示不正常。
請改用 Mozilla Firefox 或者 Google Chrome 才能正常瀏覽本網站,謝謝!

8.01.2011

從 URL 位址讀取影像到 UIImage 的方法


在設定 UIImage 的影像時,除了可以使用本機端的 Local 的影像資料,也可以透過 URL 網路位置來做影像內容上的設定,當然前提是你得要能連上網際網路才行,其設定方式如下。

//設定圖片的url位址
NSURL *url = [NSURL URLWithString:@"圖片的url"];

//使用NSData的方法將影像指定給UIImage
UIImage *urlImage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:url]];

//顯示影像
UIImageView *imageView = [[UIImageView alloc] initWithImage:urlImage];
imageView.frame = CGRectMake(40.0, 150.0, urlImage.size.width, urlImage.size.height);
[self.view addSubview:imageView];

//釋放記憶體
[urlImage release];
[imageView release];






2 則留言:

  1. hi 請教一下觀念~~
    第一個疑問:設定圖片的url位址這部分我如果有多個照片網址該如何寫code
    第二個疑問:使用NSData的方法將影像指定給UIImage這部分觀念~是指說可以指定多個 「url」給urlImage嗎?
    第三個問題:假設我把url網址新增在資料庫欄位: 目前我把您文章「UITableView 的資料設定方式」已經改用sql資料庫 我只要在資料庫新增name 然後把圖片名稱設定成name.jpg 他就會對照出自己照片~現在我想用name 當key 去抓取url欄位然後在UIImage 顯示出圖片不知這樣的觀念對嗎?有點類似飯店app 每間旅館都有自己照片集 ~~PS我目的是為了方便管理例如我在sql增加url位置app就可以自行抓取照片~~以上~~感謝您觀念指導

    回覆刪除
    回覆
    1. Bryan Chen 您好:

      1. 您可以使用陣列來分別設定這些網址,或是使用一個plist檔案做存取,它同樣也是陣列的概念
      2. 一個nsdata只能存放一張圖片資料,但是,同樣的意思如果您將nsdata放入陣列中,同樣可以存放多個圖片資料
      3.用圖片檔名當key當然可以,但是如果遇到相同名稱的話這樣就會混淆,還是建議寧用index索引值來做key,索引值就像學生的學號一樣,一個班級就是一個資料表,即使有相同名稱的學生也不會混淆,你可以使用「陣列」或是「plist檔案」來設計你的程式,這些都是具有索引值的工具。

      使用索引值你會發現有很多好處,例如您所提到的在sql增加欄位,當你下語法select*時,就會知道有多少比資料,而每一比都可以對印到陣列中的每一項資料,方便修改與回存。

      ps:建議您去看看「精通objective2.0 程式設計」這一本書,相信可以釐清您很多的觀念,我們也是從這一本書開始的︿︿;

      刪除