2014-09-20 68 views
0

我一直在嘗試以編程方式獲取我的Cocos2d遊戲的高質量截圖,以便在社交網絡上發佈。質量一直很差,通常模糊。我決定採取手動截圖並將其發佈到Facebook,質量也很模糊。大多數在屏幕上呈現的圖像是.png格式和spritesheets(使用RGBA444圖像格式,.pvr.ccz紋理格式,FloydSteinbergAlpha抖動),大多數精靈的分辨率也是380 ppi。這些設置中的任何一個都可能導致模糊?此外,無論如何,我可以共享屏幕上呈現的圖像,而不是通過截圖嗎?請參閱下面的代碼:如何獲得高質量的iOS截圖?

-(UIImage*) screenshotWithStartNode:(CCNode*)startNode 
{ 
    [CCDirector sharedDirector].nextDeltaTimeZero = YES; 

    CGSize winSize = [CCDirector sharedDirector].winSize; 
    CCRenderTexture* rtx = 
    [CCRenderTexture renderTextureWithWidth:winSize.width 
          height:winSize.height]; 
    [rtx begin]; 
    [startNode visit]; 
    [rtx end]; 

    return [rtx getUIImage]; 
} 
+1

你可以使用模擬器手動製作屏幕截圖,如果這對你有用 – Sjors 2014-09-20 15:09:08

回答

1

您正在創建點而不是像素的屏幕截圖。在Retina設備上,這意味着960x640的屏幕截圖實際上是480x320。這也許可以解釋爲什麼你把屏幕截圖視爲「模糊」,只是因爲它們被縮小了。

假設你正在使用cocos2d的版本2.x,你應該使用像素屏幕大小捕捉屏幕截圖在全像素分辨率:

CGSize winSize = [CCDirector sharedDirector].winSizeInPixels; 

我沒有檢查,但假設v3具有類似的方式以像素爲單位而不是點數來獲取視圖/窗口的大小。

PS:在某些條件下,Facebook會將自己的縮放比例(以及我相信的格式轉換爲JPG格式)應用於圖像。如果您想知道結果是否良好,請將截圖保存在照片庫中,或將其顯示爲精靈或通過電子郵件將其發送給自己,以確保圖像看起來沒問題,如果有任何殘留的圖像質量下降發佈到Facebook後。

+0

當我使用'winSizeInPixels'時,它將圖像縮小到我在Facebook上發佈的四分之一屏幕。我在iPhone 5上測試過它。 – errorallergic 2014-09-22 11:34:31

+0

我仍然無法解決模糊問題 – errorallergic 2014-10-13 15:23:18