2012-05-15 74 views
1

我是OpenGL的新手,我正在尋找任何代碼片段來繪製一個簡單的UIImage到屏幕 - 正如UIImageView一樣。UIImageView與iOS GLES

互聯網充滿了這樣的代碼示例,但它們都增加了一點平滑的圖片,當(在我的代碼中)我通過UIImageView添加OpenGLView,用戶可以看到這一刻。 UIImage上的文字變得更加平滑一些。

回答

2

對於現有的解決方案,您可以使用我的開放源碼GPUImage框架中的GPUImageView,並將其與GPUImagePicture結合使用以提取您的UIImage。執行此顯示的代碼將類似如下:

UIImage *inputImage = [UIImage imageNamed:@"image.png"]; 
GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:inputImage]; 
GPUImageView *imageView = (GPUImageView *)self.view; 
[stillImageSource addTarget:imageView]; 
[stillImageSource processImage]; 

這個框架的重點是執行基於ES的OpenGL圖像和視頻處理,所以這是你可以用框架做的最起碼的事。濾鏡和其他類型的圖像處理操作可以添加到從圖像到視圖的鏈中。

這個基於OpenGL ES的圖像視圖有三種不同的填充模式,可以通過fillMode屬性設置,但默認情況下它會拉伸圖像以填充視圖。你應該可以使用這個屬性來匹配你的UIImageView的填充模式。

您可以檢查代碼,GPUImageView看我怎麼走的質地和基於這些不同的填充模式和可能的圖像旋轉顯示。基本上,我只是使用兩個三角形建立一個矩形,並使用直通着色器在該矩形內顯示紋理,這與其他人在這種情況下幾乎完全相同。

在平滑看到可能來自紋理過濾的GPU與核芯顯卡如何按比例縮小圖像的方式不同的區別,如果你這些意見中放置的圖像,其尺寸不同於他們的意見被顯示在。