嗨, 我有一個大的圖像,然後即時通過提取所述圖像的一部分的:NSImage中座標
[mBaseImage lockFocus];
NSBitmapImageRep* bitmapImageRep = [[NSBitmapImageRep alloc] initWithFocusedViewRect: NSMakeRect(startX,startY,width,height)];
[mBaseImage unlockFocus];
後跟:
extractedImage = [[NSImage alloc] initWithSize:[bitmapImageRep size]];
[extractedImage addRepresentation:bitmapImageRep];
其中extractedImage NSImage中是*。
後來而我試圖繪製使用NSDrawNinePartImage的extractedImage,我意識到,雖然我在http://www.karlkraft.com/index.php/2007/11/14/nsdrawninepartimage/ 指定以下的例子中的9份我意識到,當我指定0,0它顯示的左上handcorner圖像,這意味着0,0是左上角而不是左下角,如鏈接中的示例所示。我嘗試設置setFlipped,但它似乎只是翻轉圖像。有沒有人有任何想法如何我可以將座標回到0,0在左下角?
哦,我忘了提及我使用圖像作爲按鈕,所以它作爲NSButton呈現。
問候, 漢
你是什麼意思「它是作爲一個NSButton呈現」?無法將NSImage放入視圖層次結構中,那麼您對圖像執行的操作是什麼,以及「NSDrawNinePartImage」調用的對象是什麼? – 2010-10-11 08:23:31
哦對不起。這是一個自定義NSButton的一部分。自定義的NSButton可以有一個NSImage。 drawRect被覆蓋以包含[image drawInRect:....];以便在顯示按鈕時繪製圖像。在drawInRect函數中,檢查是否設置了標誌useTile,如果是,則drawInRect將調用函數drawWithTiles並在將9張圖像傳遞給NSDrawNinePartImage之前對用戶定義的圖像進行適當分割。 – han 2010-10-11 08:52:44
您正在遵循的示例將在分辨率無關的非整數比例因子下失敗。 : - 請處理您在網上發現的懷疑代碼。它應該使用NSBitmapImageRep作爲目標切片而不是NSImage,因爲該代碼特別與像素綁定。 – Ken 2010-10-11 19:40:03