Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(823)

Side by Side Diff: core/fpdfapi/fpdf_render/fpdf_render.cpp

Issue 2224623002: Add CPDF_ImageObject::GetImage(). (Closed) Base URL: https://pdfium.googlesource.com/pdfium@master
Patch Set: merge failure handlers Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "core/fpdfapi/fpdf_render/render_int.h" 7 #include "core/fpdfapi/fpdf_render/render_int.h"
8 8
9 #include <memory>
10
9 #include "core/fpdfapi/fpdf_font/cpdf_type3char.h" 11 #include "core/fpdfapi/fpdf_font/cpdf_type3char.h"
10 #include "core/fpdfapi/fpdf_font/cpdf_type3font.h" 12 #include "core/fpdfapi/fpdf_font/cpdf_type3font.h"
11 #include "core/fpdfapi/fpdf_page/cpdf_colorstatedata.h" 13 #include "core/fpdfapi/fpdf_page/cpdf_colorstatedata.h"
12 #include "core/fpdfapi/fpdf_page/cpdf_graphicstates.h" 14 #include "core/fpdfapi/fpdf_page/cpdf_graphicstates.h"
13 #include "core/fpdfapi/fpdf_page/include/cpdf_form.h" 15 #include "core/fpdfapi/fpdf_page/include/cpdf_form.h"
14 #include "core/fpdfapi/fpdf_page/include/cpdf_formobject.h" 16 #include "core/fpdfapi/fpdf_page/include/cpdf_formobject.h"
15 #include "core/fpdfapi/fpdf_page/include/cpdf_image.h" 17 #include "core/fpdfapi/fpdf_page/include/cpdf_image.h"
16 #include "core/fpdfapi/fpdf_page/include/cpdf_imageobject.h" 18 #include "core/fpdfapi/fpdf_page/include/cpdf_imageobject.h"
17 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h" 19 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h"
18 #include "core/fpdfapi/fpdf_page/include/cpdf_pageobject.h" 20 #include "core/fpdfapi/fpdf_page/include/cpdf_pageobject.h"
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 pPageObj->m_GeneralState.GetObject(); 681 pPageObj->m_GeneralState.GetObject();
680 int blend_type = 682 int blend_type =
681 pGeneralState ? pGeneralState->m_BlendType : FXDIB_BLEND_NORMAL; 683 pGeneralState ? pGeneralState->m_BlendType : FXDIB_BLEND_NORMAL;
682 if (blend_type == FXDIB_BLEND_UNSUPPORTED) { 684 if (blend_type == FXDIB_BLEND_UNSUPPORTED) {
683 return TRUE; 685 return TRUE;
684 } 686 }
685 CPDF_Dictionary* pSMaskDict = 687 CPDF_Dictionary* pSMaskDict =
686 pGeneralState ? ToDictionary(pGeneralState->m_pSoftMask) : nullptr; 688 pGeneralState ? ToDictionary(pGeneralState->m_pSoftMask) : nullptr;
687 if (pSMaskDict) { 689 if (pSMaskDict) {
688 if (pPageObj->IsImage() && 690 if (pPageObj->IsImage() &&
689 pPageObj->AsImage()->m_pImage->GetDict()->KeyExist("SMask")) { 691 pPageObj->AsImage()->GetImage()->GetDict()->KeyExist("SMask")) {
690 pSMaskDict = nullptr; 692 pSMaskDict = nullptr;
691 } 693 }
692 } 694 }
693 CPDF_Dictionary* pFormResource = nullptr; 695 CPDF_Dictionary* pFormResource = nullptr;
694 FX_FLOAT group_alpha = 1.0f; 696 FX_FLOAT group_alpha = 1.0f;
695 int Transparency = m_Transparency; 697 int Transparency = m_Transparency;
696 FX_BOOL bGroupTransparent = FALSE; 698 FX_BOOL bGroupTransparent = FALSE;
697 if (pPageObj->IsForm()) { 699 if (pPageObj->IsForm()) {
698 const CPDF_FormObject* pFormObj = pPageObj->AsForm(); 700 const CPDF_FormObject* pFormObj = pPageObj->AsForm();
699 const CPDF_GeneralStateData* pStateData = 701 const CPDF_GeneralStateData* pStateData =
(...skipping 14 matching lines...) Expand all
714 bTextClip = TRUE; 716 bTextClip = TRUE;
715 } 717 }
716 if ((m_Options.m_Flags & RENDER_OVERPRINT) && pPageObj->IsImage() && 718 if ((m_Options.m_Flags & RENDER_OVERPRINT) && pPageObj->IsImage() &&
717 pGeneralState && pGeneralState->m_FillOP && pGeneralState->m_StrokeOP) { 719 pGeneralState && pGeneralState->m_FillOP && pGeneralState->m_StrokeOP) {
718 CPDF_Document* pDocument = nullptr; 720 CPDF_Document* pDocument = nullptr;
719 CPDF_Page* pPage = nullptr; 721 CPDF_Page* pPage = nullptr;
720 if (m_pContext->GetPageCache()) { 722 if (m_pContext->GetPageCache()) {
721 pPage = m_pContext->GetPageCache()->GetPage(); 723 pPage = m_pContext->GetPageCache()->GetPage();
722 pDocument = pPage->m_pDocument; 724 pDocument = pPage->m_pDocument;
723 } else { 725 } else {
724 pDocument = pPageObj->AsImage()->m_pImage->GetDocument(); 726 pDocument = pPageObj->AsImage()->GetImage()->GetDocument();
725 } 727 }
726 CPDF_Dictionary* pPageResources = pPage ? pPage->m_pPageResources : nullptr; 728 CPDF_Dictionary* pPageResources = pPage ? pPage->m_pPageResources : nullptr;
727 CPDF_Object* pCSObj = pPageObj->AsImage() 729 CPDF_Object* pCSObj = pPageObj->AsImage()
728 ->m_pImage->GetStream() 730 ->GetImage()
731 ->GetStream()
729 ->GetDict() 732 ->GetDict()
730 ->GetDirectObjectBy("ColorSpace"); 733 ->GetDirectObjectBy("ColorSpace");
731 CPDF_ColorSpace* pColorSpace = 734 CPDF_ColorSpace* pColorSpace =
732 pDocument->LoadColorSpace(pCSObj, pPageResources); 735 pDocument->LoadColorSpace(pCSObj, pPageResources);
733 if (pColorSpace) { 736 if (pColorSpace) {
734 int format = pColorSpace->GetFamily(); 737 int format = pColorSpace->GetFamily();
735 if (format == PDFCS_DEVICECMYK || format == PDFCS_SEPARATION || 738 if (format == PDFCS_DEVICECMYK || format == PDFCS_SEPARATION ||
736 format == PDFCS_DEVICEN) { 739 format == PDFCS_DEVICEN) {
737 blend_type = FXDIB_BLEND_DARKEN; 740 blend_type = FXDIB_BLEND_DARKEN;
738 } 741 }
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
1289 m_pDevice->StretchDIBits(m_pBitmapDevice->GetBitmap(), m_Rect.left, 1292 m_pDevice->StretchDIBits(m_pBitmapDevice->GetBitmap(), m_Rect.left,
1290 m_Rect.top, m_Rect.Width(), m_Rect.Height()); 1293 m_Rect.top, m_Rect.Width(), m_Rect.Height());
1291 } 1294 }
1292 } 1295 }
1293 1296
1294 #if defined _SKIA_SUPPORT_ 1297 #if defined _SKIA_SUPPORT_
1295 void CPDF_RenderStatus::DebugVerifyDeviceIsPreMultiplied() const { 1298 void CPDF_RenderStatus::DebugVerifyDeviceIsPreMultiplied() const {
1296 m_pDevice->DebugVerifyBitmapIsPreMultiplied(); 1299 m_pDevice->DebugVerifyBitmapIsPreMultiplied();
1297 } 1300 }
1298 #endif 1301 #endif
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_page/include/cpdf_imageobject.h ('k') | core/fpdfapi/fpdf_render/fpdf_render_image.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698