2017-03-17 60 views
0

這是我的第一個月,在Objective-C,我試圖繪製一個UIImage的(ImageA)上的另一個圖像(背景圖像)頂部Objective-c - 如何將圖像繪製爲四邊形?

ImageA四邊形

enter image description here

背景圖像 enter image description here

高端形象 enter image description here

我已經試過到目前爲止是3D轉換含ImageAhttps://stackoverflow.com/a/18606029/864513

的幫助下的UIImageView再取轉化視圖的快照

- (UIImage *)snapshot:(UIView *)view 
       size:(CGSize)size 
{ 
    UIImage *viewImage = nil; 
    @autoreleasepool { 
    UIGraphicsBeginImageContext(size); 
    BOOL success = [view drawViewHierarchyInRect:(CGRect){CGPointZero, size} afterScreenUpdates:YES]; 
    viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    if (!success || !viewImage) { 
     return nil; 
    } 
    } 
    return viewImage; 
} 

然後在圖像上下文中的矩形中繪製快照圖像以及背景圖片

CGRect offsetRect = CGRectMake(0, 0, fileSize.width, fileSize.height); 
UIGraphicsBeginImageContext(fileSize); 
[BackgroundImage drawInRect:offsetRect]; 
[ImageA drawInRect:offsetRect]; 
UIImage *endImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

這種方法效果很好,但在循環中使用時,創建GIF。它導致很多內存泄漏崩潰在低內存設備!

CGImageDestinationAddImage(destination, [endImage CGImage], (__bridge CFDictionaryRef)frameProperties); 

在Android中有一個叫做drawBitmapMesh的函數,它通過網格繪製位圖。有沒有什麼辦法可以通過objective-c中的網格來繪製。或者如果你知道一個更好的方法來解決我的問題,我會永遠感激。 謝謝

回答

1

您可以使用PerspectiveTransform過濾器上的圖像。

示例代碼:Github

+0

謝謝,我已經試過了,但結果是粗略的,而imageA沒有覆蓋整個區域的預期。 –

+0

最後,讓它與Perspective Transform一起工作! –