summaryrefslogtreecommitdiff
path: root/fpdfsdk/fpdfview.cpp
diff options
context:
space:
mode:
authorJane Liu <janeliulwq@google.com>2017-08-02 21:45:57 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-08-03 20:20:02 +0000
commit28fb7ba083dba5e09493fd37a11994de51527dfc (patch)
treede009c28d419bed2a9a123c257f923893db0b053 /fpdfsdk/fpdfview.cpp
parent844d5dac8a6c97b2cd3bd92bf07d0cc62158408a (diff)
downloadpdfium-28fb7ba083dba5e09493fd37a11994de51527dfc.tar.xz
APIs and tests for extracting bitmaps from image objects
Added FPDFImageObj_GetBitmap() that returns the bitmap of an image object, and a FPDFBitmap_GetFormat() that returns the format of a bitmap. * Fixed a small bitmap conversion bug in cfx_dibsource.cpp. * Enabled EmbedderTest::CompareBitmap() to support different formats of bitmaps. * Added an embedder test and a test PDF file with images of many different formats. Bug=pdfium:677 Change-Id: I6a72f9d969cf5f3577db9400ca33197c213622ed Reviewed-on: https://pdfium-review.googlesource.com/9690 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Jane Liu <janeliulwq@google.com>
Diffstat (limited to 'fpdfsdk/fpdfview.cpp')
-rw-r--r--fpdfsdk/fpdfview.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp
index 355fcb3f8f..5aa80139ae 100644
--- a/fpdfsdk/fpdfview.cpp
+++ b/fpdfsdk/fpdfview.cpp
@@ -1126,6 +1126,26 @@ DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_CreateEx(int width,
return pBitmap.Leak();
}
+DLLEXPORT int STDCALL FPDFBitmap_GetFormat(FPDF_BITMAP bitmap) {
+ if (!bitmap)
+ return FPDFBitmap_Unknown;
+
+ FXDIB_Format format = CFXBitmapFromFPDFBitmap(bitmap)->GetFormat();
+ switch (format) {
+ case FXDIB_8bppRgb:
+ case FXDIB_8bppMask:
+ return FPDFBitmap_Gray;
+ case FXDIB_Rgb:
+ return FPDFBitmap_BGR;
+ case FXDIB_Rgb32:
+ return FPDFBitmap_BGRx;
+ case FXDIB_Argb:
+ return FPDFBitmap_BGRA;
+ default:
+ return FPDFBitmap_Unknown;
+ }
+}
+
DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap,
int left,
int top,