Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android PDF到位图渲染_Android_Pdf - Fatal编程技术网

Android PDF到位图渲染

Android PDF到位图渲染,android,pdf,Android,Pdf,我有包含一个图标的PDF文件。 我需要在GridView中呈现这些图标 在Android 5上,我使用的是PdfRenderer系统类,它的工作原理令人惊叹: 在安卓4上,我使用的是“安卓Pdf查看器库”。 它可以工作,但质量很差: 你能推荐一些替代方案来将PDF呈现为位图吗? 或者可能有一种方法可以提高该库的渲染质量? 这是我的密码: private static Bitmap renderToBitmap(Context context, InputStream inStream) {

我有包含一个图标的PDF文件。 我需要在GridView中呈现这些图标

在Android 5上,我使用的是PdfRenderer系统类,它的工作原理令人惊叹:

在安卓4上,我使用的是“安卓Pdf查看器库”。 它可以工作,但质量很差:

你能推荐一些替代方案来将PDF呈现为位图吗? 或者可能有一种方法可以提高该库的渲染质量? 这是我的密码:

private static Bitmap renderToBitmap(Context context, InputStream inStream) {
    Bitmap bitmap = null;
    try {
        byte[] decode = IOUtils.toByteArray(inStream);
        ByteBuffer buf = ByteBuffer.wrap(decode);
        PDFPage mPdfPage = new PDFFile(buf).getPage(0, true);
        float width = mPdfPage.getWidth();
        float height = mPdfPage.getHeight();
        bitmap = mPdfPage.getImage((int) (width), (int) (height), null, true,
                true);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            inStream.close();
        } catch (IOException e) {
        }
    }
    return bitmap;
}

看起来您的PDF可能使用了一些透明对象。通常,当您看到图像中的黑色区域时,情况就是这样。透明度很复杂,所以很多hobbie PDF库都不完全支持它。我猜想在Android 5中,它使用的是PDFium,它是受支持的。看起来你的PDF可能使用了一些透明对象。通常,当您看到图像中的黑色区域时,情况就是这样。透明度很复杂,所以很多hobbie PDF库都不完全支持它。我猜想在Android 5中,它使用的是PDFium,而PDFium是受支持的。