1
怎樣的 'ANNOT' CGPDFDictionary '矩形' 翻譯成目標C矩形:怎樣的 'ANNOT' CGPDFDictionary '矩形' 翻譯成Objective C的矩形
怎樣的 'ANNOT' CGPDFDictionary '矩形' 翻譯成目標C矩形:怎樣的 'ANNOT' CGPDFDictionary '矩形' 翻譯成Objective C的矩形
矩形使用描述一個頁面上的 位置和各種對象的邊界框 。矩形 應寫成四個 數字的陣列,給出一對 對角對角的座標。
雖然矩形常規 可以通過左下和 右上拐角指定,這是可以接受 指定任何兩個對角相對的角 。處理PDF 的應用程序應該準備好在需要特定轉角的情況下規範化此類 矩形。 典型地,陣列的形式爲 [LLX LLY URX URY]指定在於 順序 左下X,左下-Y, 右上x和矩形的上部右側y 座標。然後假定 矩形的其他兩個角具有 座標(llx,ury)和(urx,lly)。
因此,這意味着,如圖所示here,應該是這樣的RECT翻譯不是本地人:
CGRect rect = CGRectMake(coords[0],coords[3],coords[2]-coords[0],coords[3]-coords[1]);
看到代碼婁(原代碼由BrainFeeder)看到的上下文COORDS陣列:
CGPDFArrayRef rectArray;
if(CGPDFDictionaryGetArray(annotDict, "Rect", &rectArray)) {
//continue;
CGPDFReal coords[4];
for(int k = 0; k < arrayCount; ++k) {
CGPDFObjectRef rectObj;
if(!CGPDFArrayGetObject(rectArray, k, &rectObj)) {
continue;
}
CGPDFReal coord;
if(!CGPDFObjectGetValue(rectObj, kCGPDFObjectTypeReal, &coord)) {
continue;
}
coords[k] = coord;
}
}
//blx,bly,trx,try>tlx,tly,w,h
CGRect rect = CGRectMake(coords[0],coords[3],coords[2]-coords[0],coords[3]-coords[1]);
+1幫助我的問題,但你肯定不應該實際上是: `的CGRect RECT = CGRectMake(COORDS [0],COORDS [1],COORDS [2] -coords [ 0],coords [3] -coords [1]);`instea (coords [0],coords [3],coords [2] -coords [0],coords [3] -coords [1]);`(注意``y`參數;它使用索引`1`座標而不是索引`3`)。無論如何,這對我有用。 – 2011-06-18 02:22:56