在iOS6中,页面尺寸较小的PDF图像不会自动调整为全屏大小

Srivathsa

我正在尝试从PDF捕获图像并将其显示在UIScrollView的iPad应用程序中。当pdf页面尺寸为1024 x 768(标准4:3宽高比)时,App会将图像渲染为全屏(全尺寸)。但是,当pdf页面尺寸为720 x 540(相同的4:3长宽比,但尺寸较小)时,我看到图像周围出现白色边框。以下是我尝试捕获图像的代码片段。

CGPDFPageRef thePDFPageRef = CGPDFDocumentGetPage(pdfDocRef, pdfIterator);
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB(); // RGB color space

        CGBitmapInfo bmi = (kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedLast);
        thumbnailWidth = 1024;
        thumbnailHeight = 768;
        CGContextRef context = CGBitmapContextCreate(NULL, thumbnailWidth, thumbnailHeight, 8, 0, rgb, bmi);


        if (context != NULL) // Must have a valid custom CGBitmap context to draw into
        {
            CGRect thumbRect = CGRectMake(0.0f, 0.0f, thumbnailWidth, thumbnailHeight); // Target thumb rect

            CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 1.0f);

            CGContextFillRect(context, thumbRect); // White fill

            CGContextConcatCTM(context, CGPDFPageGetDrawingTransform(thePDFPageRef, kCGPDFCropBox, thumbRect, 0, true)); // Fit rect

            CGContextSetRenderingIntent(context, kCGRenderingIntentDefault);
            CGContextSetInterpolationQuality(context, kCGInterpolationHigh);

            CGContextDrawPDFPage(context, thePDFPageRef); // Render the PDF page into the custom CGBitmap context

            imageRef = CGBitmapContextCreateImage(context); // Create CGImage from custom CGBitmap context

            CGContextRelease(context); // Release custom CGBitmap context reference
        }

        CGColorSpaceRelease(rgb); // Release device RGB color space reference

        CGPDFPageRelease(thePDFPageRef);
    }


    UIImage *image = [UIImage imageWithCGImage:imageRef scale:scale orientation:0];

即使pdf页面尺寸较小,如何自动缩放为全屏显示?

Srivathsa

我发现缩放到矩形的解决方案如下。

(1)使用获取PDF页面矩形

CGRect pageRect = CGPDFPageGetBoxRect(page, kCGPDFMediaBox);

(2)缩放矩形并将变换应用于Identity Matrix

CGAffineTransform trans = CGAffineTransformIdentity;
trans = CGAffineTransformTranslate(trans, 0, pageRect.size.height);
trans = CGAffineTransformScale(trans, 1.0, -1.0);
rect = CGRectApplyAffineTransform(rect, trans);

(3)使用kCGPDFMediaBox而不是kCGPDFCropBox可以避免在尺寸与标准尺寸不同时裁切pdf。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将图像调整为全屏或文件大小

来自分类Dev

根据显示尺寸自动调整图像大小

来自分类Dev

在网格中调整图像大小以使div适合较小的尺寸

来自分类Dev

为什么将Imagemagick或GraphicsMagick调整为较小尺寸时会增加我的PNG图像的MB大小?

来自分类Dev

如何调整页面标题以在iOS6和iOS7中正常工作?

来自分类Dev

我的图像将不会设置为较小的尺寸

来自分类Dev

Bootstrap 3图像自动调整全屏大小和滚动效果

来自分类Dev

iOS 8中的自动调整大小的单元格和动态类型不会调整大小

来自分类Dev

Java全屏图像调整大小?

来自分类Dev

启动器自动隐藏后,Windows不会在ubuntu 14.04中调整顶部全屏的大小

来自分类Dev

自动调整CSS中图像的大小

来自分类Dev

在Word中自动调整图片/图像的大小?

来自分类Dev

在html页面中自动调整多个图像

来自分类Dev

GIMP:将画布大小自动调整为图像大小

来自分类Dev

渲染前使用ABCPdf调整页面大小(pdf中的大图像)

来自分类Dev

在Photoshop中按最大尺寸调整图像大小

来自分类Dev

如何为较小的屏幕调整图像大小?

来自分类Dev

iOS6中的自动旋转无法正常工作

来自分类Dev

如何从jlable中获取图像以自动缩放或调整为JLabel的大小

来自分类Dev

在 Google Chrome 中为某些网站/域自动调整图像大小

来自分类Dev

自动调整背景图像大小以适合较小的窗口和移动设备-HTML / CSS

来自分类Dev

将未知尺寸的图像调整为特定尺寸而不会变形吗?

来自分类Dev

调整图像内容的大小,但保持图像尺寸

来自分类Dev

Android Studio / Gradle:为Android自动调整图像大小

来自分类Dev

使用自动版式在CollectionView的CollectionViewCell中自动调整图像大小

来自分类Dev

使用ios6中的MPMoviePlayerController仅在全屏模式下以横向模式显示视频

来自分类Dev

Virtualbox 4.2.10自动调整大小无法正常工作。除非全屏显示,否则将自动缩小但不会自动调整大小

来自分类Dev

调整图像大小而不会失真

来自分类Dev

全屏元素调整为视口大小

Related 相关文章

  1. 1

    将图像调整为全屏或文件大小

  2. 2

    根据显示尺寸自动调整图像大小

  3. 3

    在网格中调整图像大小以使div适合较小的尺寸

  4. 4

    为什么将Imagemagick或GraphicsMagick调整为较小尺寸时会增加我的PNG图像的MB大小?

  5. 5

    如何调整页面标题以在iOS6和iOS7中正常工作?

  6. 6

    我的图像将不会设置为较小的尺寸

  7. 7

    Bootstrap 3图像自动调整全屏大小和滚动效果

  8. 8

    iOS 8中的自动调整大小的单元格和动态类型不会调整大小

  9. 9

    Java全屏图像调整大小?

  10. 10

    启动器自动隐藏后,Windows不会在ubuntu 14.04中调整顶部全屏的大小

  11. 11

    自动调整CSS中图像的大小

  12. 12

    在Word中自动调整图片/图像的大小?

  13. 13

    在html页面中自动调整多个图像

  14. 14

    GIMP:将画布大小自动调整为图像大小

  15. 15

    渲染前使用ABCPdf调整页面大小(pdf中的大图像)

  16. 16

    在Photoshop中按最大尺寸调整图像大小

  17. 17

    如何为较小的屏幕调整图像大小?

  18. 18

    iOS6中的自动旋转无法正常工作

  19. 19

    如何从jlable中获取图像以自动缩放或调整为JLabel的大小

  20. 20

    在 Google Chrome 中为某些网站/域自动调整图像大小

  21. 21

    自动调整背景图像大小以适合较小的窗口和移动设备-HTML / CSS

  22. 22

    将未知尺寸的图像调整为特定尺寸而不会变形吗?

  23. 23

    调整图像内容的大小,但保持图像尺寸

  24. 24

    Android Studio / Gradle:为Android自动调整图像大小

  25. 25

    使用自动版式在CollectionView的CollectionViewCell中自动调整图像大小

  26. 26

    使用ios6中的MPMoviePlayerController仅在全屏模式下以横向模式显示视频

  27. 27

    Virtualbox 4.2.10自动调整大小无法正常工作。除非全屏显示,否则将自动缩小但不会自动调整大小

  28. 28

    调整图像大小而不会失真

  29. 29

    全屏元素调整为视口大小

热门标签

归档