に画像を回す:改宗者PDFは、私がCGImageにPDFのページを変換するために、次のコードを持っている負
func testPrint(pp:UnsafePointer<Void>) { // debug to see bits
var p = UnsafePointer<UInt8>(pp)
var res = ""
for _ in 0..<200 {
res += "\(p.memory) "
p = p.advancedBy(1)
}
print(res)
}
func pageOneFromPDF(file:String) -> CGImage? {
let url = NSURL(fileURLWithPath: file)
let pdfDocument = CGPDFDocumentCreateWithURL(url)
let pageOne = CGPDFDocumentGetPage(pdfDocument, 1)
let rect = CGPDFPageGetBoxRect(pageOne, .MediaBox)
let width = Int(rect.size.width)
let height = Int(rect.size.height)
let context = CGBitmapContextCreate(nil, width, height, 8, width, CGColorSpaceCreateDeviceGray(), CGImageAlphaInfo.Only.rawValue)!
CGContextClearRect(context, rect)
CGContextDrawPDFPage(context, pageOne)
testPrint(CGBitmapContextGetData(context))
return CGBitmapContextCreateImage(context)
}
これは、グレースケールビットマップに実際に私のPDFのページに変換します。唯一の問題は、結果として得られるCGImage
の色が反転していることです(黒は白になり、逆も同様です)。私はCGBitmapContextCreate
のパラメータで周りを見回しましたが運はありません。
P.S.私はポジティブにネガティブを逆にするコードのこの部分を追加しました:
作品func inverse(pp:UnsafePointer<Void>, size:Int) {
var p = UnsafeMutablePointer<UInt8>(pp)
for _ in 0..<size {
p.memory = 255-p.memory
p = p.advancedBy(1)
}
}
、もちろん、私は最初の場所での画像の権利を取得したいのですが。
EDIT:私は何か愚かなことをしているに違いないと思います。私は上記のようにレンダリングして全体像を反転すると、それは、Finderのプレビューと右の私のレンダリング、それを左
のように見えます。今見てきたように、これは画像の一部を反転させます。私は@Tricertopsコードを試み、得(上/下で黒ブロックは、他のPDFファイルと、リストからのものである)
と明らかにこれが正しいグレイ値を有するが、アンダーレイ一部ブラックマスクがあります画像。左側の純粋なテキストは見えなくなりましたが、イメージは正しく表示されます。
私はそれを試みましたが、それはまだポイントを得るように見えません。私は私の質問にいくつかの情報を追加しました。 –
私は昨日何をしたのか分かりませんが、明らかに私は意識していませんでした(十分)。確かにそれは私が欠けていたものです。どうもありがとう! –