2012-09-02 29 views
1

我有兩個圖像視圖。他們是「拼圖」,我想測試一個是否適合其他人。不是框架重疊。我想它是一個CGRect的東西......但似乎他們測試的外部邊界。任何想法,將不勝感激?謝謝。檢查圖像中有洞的重疊圖像

+0

我有兩個PNG的透明區域/切除其他圖像。 –

回答

1

您是否事先知道件的正確順序?可能最好將標籤分配給每個UIImageView,這將代表圖像的索引號。然後,您只需創建一種網格並檢查放置該單元的單元格。如果單元格號碼和UIImageView標籤匹配 - 那麼這是正確的地方。

如果您只有兩幅圖像,而且一幅圖像必須適合另一幅圖像中的特定區域,則可以存儲該圖像的邊框並檢查該圖像是否放置在該圖像中心的某處。它會更加用戶友好,因爲當您檢查像素或位掩碼時,您希望用戶非常精確。或者你的比較代碼應該允許一些變化,並且會非常複雜。

但是,如果你不想硬編碼洞框架,你可以動態計算它(只需在圖像中找到透明區域)。無論如何,這個解決方案將更有效,然後在飛行中檢查比特匹配。

+0

它們可以被硬編碼......並且可以提前設置順序。我不知道如何檢查透明區域。用戶可以旋轉並移動該部分。我會放入一個內部大小的緩衝空間,這樣它會有一個小小的擺動空間。我想像一個洞裏的釘(雖然這些棋子可能不是對稱的)。 –

+1

您可以不使用框架,而只使用其中心。存儲匹配的中心,並檢查該件的中心是否在附近。如果用戶允許旋轉東西,我認爲只有幾個正確的角度,即使有一些小的差異,也可以很容易地存儲和檢查。 –

2

只是在這裏集思廣益...也許這會讓你想到一些適合你的東西。如果圖像不重疊,則在圖像B頂部繪製圖像A將產生與在圖像A頂部繪製圖像B相同的圖像。如果它們重疊,那將導致不同的圖像。你可以做一些像繪製圖像A,然後B.創建結果的校驗和,再次繪製A和校驗和。如果校驗和匹配,拼圖塊就適合了。

如果您有一個1位的掩碼來表示每個圖像,那麼將它們組合在一起並將它們異或會得到相同的結果,如果它們不重疊並且結果不同的話。

+1

+1好的想法。 – hpique