0

Fix some nits in PDFiumPrint::CreateSinglePageRasterPdf().

- Inline a FPDFBitmap_GetBuffer() call and don't bother casting it.
- Hold the returned object from FPDFPageObj_NewImageObj() in a
  ScopedFPDFPageObject.

Change-Id: I0c953c8a9d485c4dc19b4b96a1e3bf5851474a68
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1972587
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#725758}
This commit is contained in:
Lei Zhang
2019-12-18 00:52:44 +00:00
committed by Commit Bot
parent 42dfb2d336
commit a77d2a80a4

@ -442,8 +442,6 @@ ScopedFPDFDocument PDFiumPrint::CreateSinglePageRasterPdf(
bitmap_size.height(), print_settings.orientation,
FPDF_PRINTING);
unsigned char* bitmap_data =
static_cast<unsigned char*>(FPDFBitmap_GetBuffer(bitmap.get()));
double ratio_x = ConvertUnitDouble(bitmap_size.width(), print_settings.dpi,
kPointsPerInch);
double ratio_y = ConvertUnitDouble(bitmap_size.height(), print_settings.dpi,
@ -451,7 +449,7 @@ ScopedFPDFDocument PDFiumPrint::CreateSinglePageRasterPdf(
// Add the bitmap to an image object and add the image object to the output
// page.
FPDF_PAGEOBJECT temp_img = FPDFPageObj_NewImageObj(temp_doc.get());
ScopedFPDFPageObject temp_img(FPDFPageObj_NewImageObj(temp_doc.get()));
bool encoded = false;
std::vector<uint8_t> compressed_bitmap_data;
@ -463,7 +461,8 @@ ScopedFPDFDocument PDFiumPrint::CreateSinglePageRasterPdf(
SkImageInfo info = SkImageInfo::Make(
FPDFBitmap_GetWidth(bitmap.get()), FPDFBitmap_GetHeight(bitmap.get()),
kBGRA_8888_SkColorType, kOpaque_SkAlphaType);
SkPixmap src(info, bitmap_data, FPDFBitmap_GetStride(bitmap.get()));
SkPixmap src(info, FPDFBitmap_GetBuffer(bitmap.get()),
FPDFBitmap_GetStride(bitmap.get()));
encoded = gfx::JPEGCodec::Encode(src, kQuality, &compressed_bitmap_data);
}
@ -478,13 +477,14 @@ ScopedFPDFDocument PDFiumPrint::CreateSinglePageRasterPdf(
file_access.m_GetBlock = &GetBlockForJpeg;
file_access.m_Param = &compressed_bitmap_data;
FPDFImageObj_LoadJpegFileInline(&temp_page, 1, temp_img, &file_access);
FPDFImageObj_LoadJpegFileInline(&temp_page, 1, temp_img.get(),
&file_access);
} else {
FPDFImageObj_SetBitmap(&temp_page, 1, temp_img, bitmap.get());
FPDFImageObj_SetBitmap(&temp_page, 1, temp_img.get(), bitmap.get());
}
FPDFImageObj_SetMatrix(temp_img, ratio_x, 0, 0, ratio_y, 0, 0);
FPDFPage_InsertObject(temp_page, temp_img);
FPDFImageObj_SetMatrix(temp_img.get(), ratio_x, 0, 0, ratio_y, 0, 0);
FPDFPage_InsertObject(temp_page, temp_img.release());
FPDFPage_GenerateContent(temp_page);
}