0

私は何か間違ったことをしているに違いありませんが、次のことについてアドバイスを使用できます。

iPad と iPad Retina の両方で画面の一部をキャプチャしようとしています。

縦向きのビューは問題なく取得できますが、横向きのビューの右側を範囲内に収めることができません。

これは私が使用しているコードです (UIGetScreenImage() が禁制品になる前は、この問題はありませんでした)。

CGRect screenRect = [[UIScreen mainScreen] bounds];
UIGraphicsBeginImageContext(screenRect.size);
CGContextRef ctx = UIGraphicsGetCurrentContext(); 
[[UIColor blackColor] set]; 
CGContextFillRect(ctx, screenRect);
[self.view.layer renderInContext:ctx];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();


CGImageRef imageRef = CGImageCreateWithImageInRect([img CGImage], CGRectMake (0, 100, self.view.bounds.size.width, (self.view.bounds.size.height - 200)));


UIImage *img2Save = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
// Request to save the image to camera roll
UIImageWriteToSavedPhotosAlbum(img2Save, self, nil, nil);

これらは、ポートレートとランドスケープ用に取得した 2 つの画像です。

肖像画

風景

4

1 に答える 1

1

ウィンドウをフレームとして使用している場合、常にポートレート モードで表示されます。screenRect を全画面表示に設定できます。これは、縦向きと横向きの両方のモードで機能するはずです。

于 2012-05-17T01:49:45.487 に答える