2012-06-26 35 views
0

文字定製圖像我的做法有一個項目定製的衣服,讓說的T恤,有以下特點:最適合在iOS

  • 改變顏色。
  • 添加幾行文字(< = 4)並從列表中更改字體。
  • 將圖像或照片添加到T恤上。
  • 將T恤旋轉至自定義背面。
  • 旋轉圖像並放大/縮小。
  • 將結果保存爲本地項目並將其發送到webservice(我認爲使用NSDictionary/json)。
  • 另存爲圖片。

所以我的問題是:

我應該使用倍數的圖像來模擬顏色變化。或者我應該使用QuartzCore(我不是QuartzCore的專家,但如果我必須使用它,我會學習)。還是有更好的方法呢?

謝謝。

回答

0

這樣做的簡單方法是將T恤圖像渲染爲CGContext,然後遍歷行和列,並將顯示「強」原色的像素更改爲所需的色調。您可以拍攝一個穿着鮮紅色(或其他原色)T恤的人的照片,然後在您的代碼中只更改紅色具有高亮度和飽和度的像素(即「r」值超過某個閾值並且b和g分量低)。

然後修改後的圖像看起來有點平坦,因爲當您將像素更改爲一個值(新色調)時,亮度將沒有變化。爲了使這更逼真,你會想讓每個像素具有與之前相同的亮度。你可以通過從RGB到像HCL這樣的顏色空間來回轉換。蘋果公司在顏色方面有一個很好的文檔(在Mac部分),它解釋了顏色空間(谷歌的網站:developer.apple.com「顏色空間」)

爲了達到你的目標,你將不得不應對這些技術:

  • 創建CGContext上,並使用石英
  • 計算出如何讀取每個像素渲染圖像進去(像素具有α和不同順序)
  • 弄清楚的好方法,以確定恰當像素(測試通過使這些黑色或白色)
  • 爲每個像素L您想改變,將RGB轉換爲HCL以獲得其亮度
  • 用不同顏色的像素和色調,但在同一Luminence
  • 替換像素使用CGContext上作出新的圖像

如果所有這些看起來都很困難,那麼您將不得不爲每個想要的顏色都設置不同的圖像。

+0

感謝您一步一步的解釋,您的解決方案似乎更優雅。我會嘗試這種先進的東西:)。 我認爲我的選擇將取決於我需要定製多少'T恤'。所以目前我會看看是否有其他人對我有其他想法。 但我愛你的解決方案,所以生病接受它:)。 –