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

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

Issue 2334323005: Rename dictionary set and get methods (Closed)
Patch Set: Created 4 years, 3 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 <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 FX_BOOL bLoadMask) { 148 FX_BOOL bLoadMask) {
149 if (!pStream) { 149 if (!pStream) {
150 return FALSE; 150 return FALSE;
151 } 151 }
152 m_pDocument = pDoc; 152 m_pDocument = pDoc;
153 m_pDict = pStream->GetDict(); 153 m_pDict = pStream->GetDict();
154 if (!m_pDict) { 154 if (!m_pDict) {
155 return FALSE; 155 return FALSE;
156 } 156 }
157 m_pStream = pStream; 157 m_pStream = pStream;
158 m_Width = m_pDict->GetIntegerBy("Width"); 158 m_Width = m_pDict->GetIntegerFor("Width");
159 m_Height = m_pDict->GetIntegerBy("Height"); 159 m_Height = m_pDict->GetIntegerFor("Height");
160 if (m_Width <= 0 || m_Height <= 0 || m_Width > kMaxImageDimension || 160 if (m_Width <= 0 || m_Height <= 0 || m_Width > kMaxImageDimension ||
161 m_Height > kMaxImageDimension) { 161 m_Height > kMaxImageDimension) {
162 return FALSE; 162 return FALSE;
163 } 163 }
164 m_GroupFamily = GroupFamily; 164 m_GroupFamily = GroupFamily;
165 m_bLoadMask = bLoadMask; 165 m_bLoadMask = bLoadMask;
166 if (!LoadColorInfo(m_pStream->GetObjNum() != 0 ? nullptr : pFormResources, 166 if (!LoadColorInfo(m_pStream->GetObjNum() != 0 ? nullptr : pFormResources,
167 pPageResources)) { 167 pPageResources)) {
168 return FALSE; 168 return FALSE;
169 } 169 }
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 uint32_t GroupFamily, 270 uint32_t GroupFamily,
271 FX_BOOL bLoadMask) { 271 FX_BOOL bLoadMask) {
272 if (!pStream) { 272 if (!pStream) {
273 return 0; 273 return 0;
274 } 274 }
275 m_pDocument = pDoc; 275 m_pDocument = pDoc;
276 m_pDict = pStream->GetDict(); 276 m_pDict = pStream->GetDict();
277 m_pStream = pStream; 277 m_pStream = pStream;
278 m_bStdCS = bStdCS; 278 m_bStdCS = bStdCS;
279 m_bHasMask = bHasMask; 279 m_bHasMask = bHasMask;
280 m_Width = m_pDict->GetIntegerBy("Width"); 280 m_Width = m_pDict->GetIntegerFor("Width");
281 m_Height = m_pDict->GetIntegerBy("Height"); 281 m_Height = m_pDict->GetIntegerFor("Height");
282 if (m_Width <= 0 || m_Height <= 0 || m_Width > kMaxImageDimension || 282 if (m_Width <= 0 || m_Height <= 0 || m_Width > kMaxImageDimension ||
283 m_Height > kMaxImageDimension) { 283 m_Height > kMaxImageDimension) {
284 return 0; 284 return 0;
285 } 285 }
286 m_GroupFamily = GroupFamily; 286 m_GroupFamily = GroupFamily;
287 m_bLoadMask = bLoadMask; 287 m_bLoadMask = bLoadMask;
288 if (!LoadColorInfo(m_pStream->GetObjNum() != 0 ? nullptr : pFormResources, 288 if (!LoadColorInfo(m_pStream->GetObjNum() != 0 ? nullptr : pFormResources,
289 pPageResources)) { 289 pPageResources)) {
290 return 0; 290 return 0;
291 } 291 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 if (m_Status == 1) { 335 if (m_Status == 1) {
336 const CFX_ByteString& decoder = m_pStreamAcc->GetImageDecoder(); 336 const CFX_ByteString& decoder = m_pStreamAcc->GetImageDecoder();
337 if (decoder == "JPXDecode") { 337 if (decoder == "JPXDecode") {
338 return 0; 338 return 0;
339 } 339 }
340 CCodec_Jbig2Module* pJbig2Module = CPDF_ModuleMgr::Get()->GetJbig2Module(); 340 CCodec_Jbig2Module* pJbig2Module = CPDF_ModuleMgr::Get()->GetJbig2Module();
341 if (!m_pJbig2Context) { 341 if (!m_pJbig2Context) {
342 m_pJbig2Context.reset(new CCodec_Jbig2Context()); 342 m_pJbig2Context.reset(new CCodec_Jbig2Context());
343 if (m_pStreamAcc->GetImageParam()) { 343 if (m_pStreamAcc->GetImageParam()) {
344 CPDF_Stream* pGlobals = 344 CPDF_Stream* pGlobals =
345 m_pStreamAcc->GetImageParam()->GetStreamBy("JBIG2Globals"); 345 m_pStreamAcc->GetImageParam()->GetStreamFor("JBIG2Globals");
346 if (pGlobals) { 346 if (pGlobals) {
347 m_pGlobalStream.reset(new CPDF_StreamAcc); 347 m_pGlobalStream.reset(new CPDF_StreamAcc);
348 m_pGlobalStream->LoadAllData(pGlobals, FALSE); 348 m_pGlobalStream->LoadAllData(pGlobals, FALSE);
349 } 349 }
350 } 350 }
351 ret = pJbig2Module->StartDecode( 351 ret = pJbig2Module->StartDecode(
352 m_pJbig2Context.get(), m_pDocument->CodecContext(), m_Width, m_Height, 352 m_pJbig2Context.get(), m_pDocument->CodecContext(), m_Width, m_Height,
353 m_pStreamAcc.get(), m_pGlobalStream.get(), 353 m_pStreamAcc.get(), m_pGlobalStream.get(),
354 m_pCachedBitmap->GetBuffer(), m_pCachedBitmap->GetPitch(), pPause); 354 m_pCachedBitmap->GetBuffer(), m_pCachedBitmap->GetPitch(), pPause);
355 if (ret < 0) { 355 if (ret < 0) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 return ret1; 398 return ret1;
399 } 399 }
400 if (m_Status == 2) { 400 if (m_Status == 2) {
401 return ContinueLoadMaskDIB(pPause); 401 return ContinueLoadMaskDIB(pPause);
402 } 402 }
403 return 0; 403 return 0;
404 } 404 }
405 405
406 bool CPDF_DIBSource::LoadColorInfo(const CPDF_Dictionary* pFormResources, 406 bool CPDF_DIBSource::LoadColorInfo(const CPDF_Dictionary* pFormResources,
407 const CPDF_Dictionary* pPageResources) { 407 const CPDF_Dictionary* pPageResources) {
408 m_bpc_orig = m_pDict->GetIntegerBy("BitsPerComponent"); 408 m_bpc_orig = m_pDict->GetIntegerFor("BitsPerComponent");
409 if (m_pDict->GetIntegerBy("ImageMask")) 409 if (m_pDict->GetIntegerFor("ImageMask"))
410 m_bImageMask = TRUE; 410 m_bImageMask = TRUE;
411 411
412 if (m_bImageMask || !m_pDict->KeyExist("ColorSpace")) { 412 if (m_bImageMask || !m_pDict->KeyExist("ColorSpace")) {
413 if (!m_bImageMask) { 413 if (!m_bImageMask) {
414 CPDF_Object* pFilter = m_pDict->GetDirectObjectBy("Filter"); 414 CPDF_Object* pFilter = m_pDict->GetDirectObjectFor("Filter");
415 if (pFilter) { 415 if (pFilter) {
416 CFX_ByteString filter; 416 CFX_ByteString filter;
417 if (pFilter->IsName()) { 417 if (pFilter->IsName()) {
418 filter = pFilter->GetString(); 418 filter = pFilter->GetString();
419 } else if (CPDF_Array* pArray = pFilter->AsArray()) { 419 } else if (CPDF_Array* pArray = pFilter->AsArray()) {
420 filter = pArray->GetStringAt(pArray->GetCount() - 1); 420 filter = pArray->GetStringAt(pArray->GetCount() - 1);
421 } 421 }
422 422
423 if (filter == "JPXDecode") { 423 if (filter == "JPXDecode") {
424 m_bDoBpcCheck = FALSE; 424 m_bDoBpcCheck = FALSE;
425 return true; 425 return true;
426 } 426 }
427 } 427 }
428 } 428 }
429 m_bImageMask = TRUE; 429 m_bImageMask = TRUE;
430 m_bpc = m_nComponents = 1; 430 m_bpc = m_nComponents = 1;
431 CPDF_Array* pDecode = m_pDict->GetArrayBy("Decode"); 431 CPDF_Array* pDecode = m_pDict->GetArrayFor("Decode");
432 m_bDefaultDecode = !pDecode || !pDecode->GetIntegerAt(0); 432 m_bDefaultDecode = !pDecode || !pDecode->GetIntegerAt(0);
433 return true; 433 return true;
434 } 434 }
435 435
436 CPDF_Object* pCSObj = m_pDict->GetDirectObjectBy("ColorSpace"); 436 CPDF_Object* pCSObj = m_pDict->GetDirectObjectFor("ColorSpace");
437 if (!pCSObj) 437 if (!pCSObj)
438 return false; 438 return false;
439 439
440 CPDF_DocPageData* pDocPageData = m_pDocument->GetPageData(); 440 CPDF_DocPageData* pDocPageData = m_pDocument->GetPageData();
441 if (pFormResources) 441 if (pFormResources)
442 m_pColorSpace = pDocPageData->GetColorSpace(pCSObj, pFormResources); 442 m_pColorSpace = pDocPageData->GetColorSpace(pCSObj, pFormResources);
443 if (!m_pColorSpace) 443 if (!m_pColorSpace)
444 m_pColorSpace = pDocPageData->GetColorSpace(pCSObj, pPageResources); 444 m_pColorSpace = pDocPageData->GetColorSpace(pCSObj, pPageResources);
445 if (!m_pColorSpace) 445 if (!m_pColorSpace)
446 return false; 446 return false;
(...skipping 15 matching lines...) Expand all
462 return !!m_pCompData; 462 return !!m_pCompData;
463 } 463 }
464 464
465 DIB_COMP_DATA* CPDF_DIBSource::GetDecodeAndMaskArray(FX_BOOL& bDefaultDecode, 465 DIB_COMP_DATA* CPDF_DIBSource::GetDecodeAndMaskArray(FX_BOOL& bDefaultDecode,
466 FX_BOOL& bColorKey) { 466 FX_BOOL& bColorKey) {
467 if (!m_pColorSpace) { 467 if (!m_pColorSpace) {
468 return nullptr; 468 return nullptr;
469 } 469 }
470 DIB_COMP_DATA* pCompData = FX_Alloc(DIB_COMP_DATA, m_nComponents); 470 DIB_COMP_DATA* pCompData = FX_Alloc(DIB_COMP_DATA, m_nComponents);
471 int max_data = (1 << m_bpc) - 1; 471 int max_data = (1 << m_bpc) - 1;
472 CPDF_Array* pDecode = m_pDict->GetArrayBy("Decode"); 472 CPDF_Array* pDecode = m_pDict->GetArrayFor("Decode");
473 if (pDecode) { 473 if (pDecode) {
474 for (uint32_t i = 0; i < m_nComponents; i++) { 474 for (uint32_t i = 0; i < m_nComponents; i++) {
475 pCompData[i].m_DecodeMin = pDecode->GetNumberAt(i * 2); 475 pCompData[i].m_DecodeMin = pDecode->GetNumberAt(i * 2);
476 FX_FLOAT max = pDecode->GetNumberAt(i * 2 + 1); 476 FX_FLOAT max = pDecode->GetNumberAt(i * 2 + 1);
477 pCompData[i].m_DecodeStep = (max - pCompData[i].m_DecodeMin) / max_data; 477 pCompData[i].m_DecodeStep = (max - pCompData[i].m_DecodeMin) / max_data;
478 FX_FLOAT def_value; 478 FX_FLOAT def_value;
479 FX_FLOAT def_min; 479 FX_FLOAT def_min;
480 FX_FLOAT def_max; 480 FX_FLOAT def_max;
481 m_pColorSpace->GetDefaultValue(i, def_value, def_min, def_max); 481 m_pColorSpace->GetDefaultValue(i, def_value, def_min, def_max);
482 if (m_Family == PDFCS_INDEXED) { 482 if (m_Family == PDFCS_INDEXED) {
483 def_max = max_data; 483 def_max = max_data;
484 } 484 }
485 if (def_min != pCompData[i].m_DecodeMin || def_max != max) { 485 if (def_min != pCompData[i].m_DecodeMin || def_max != max) {
486 bDefaultDecode = FALSE; 486 bDefaultDecode = FALSE;
487 } 487 }
488 } 488 }
489 } else { 489 } else {
490 for (uint32_t i = 0; i < m_nComponents; i++) { 490 for (uint32_t i = 0; i < m_nComponents; i++) {
491 FX_FLOAT def_value; 491 FX_FLOAT def_value;
492 m_pColorSpace->GetDefaultValue(i, def_value, pCompData[i].m_DecodeMin, 492 m_pColorSpace->GetDefaultValue(i, def_value, pCompData[i].m_DecodeMin,
493 pCompData[i].m_DecodeStep); 493 pCompData[i].m_DecodeStep);
494 if (m_Family == PDFCS_INDEXED) { 494 if (m_Family == PDFCS_INDEXED) {
495 pCompData[i].m_DecodeStep = max_data; 495 pCompData[i].m_DecodeStep = max_data;
496 } 496 }
497 pCompData[i].m_DecodeStep = 497 pCompData[i].m_DecodeStep =
498 (pCompData[i].m_DecodeStep - pCompData[i].m_DecodeMin) / max_data; 498 (pCompData[i].m_DecodeStep - pCompData[i].m_DecodeMin) / max_data;
499 } 499 }
500 } 500 }
501 if (!m_pDict->KeyExist("SMask")) { 501 if (!m_pDict->KeyExist("SMask")) {
502 CPDF_Object* pMask = m_pDict->GetDirectObjectBy("Mask"); 502 CPDF_Object* pMask = m_pDict->GetDirectObjectFor("Mask");
503 if (!pMask) { 503 if (!pMask) {
504 return pCompData; 504 return pCompData;
505 } 505 }
506 if (CPDF_Array* pArray = pMask->AsArray()) { 506 if (CPDF_Array* pArray = pMask->AsArray()) {
507 if (pArray->GetCount() >= m_nComponents * 2) { 507 if (pArray->GetCount() >= m_nComponents * 2) {
508 for (uint32_t i = 0; i < m_nComponents; i++) { 508 for (uint32_t i = 0; i < m_nComponents; i++) {
509 int min_num = pArray->GetIntegerAt(i * 2); 509 int min_num = pArray->GetIntegerAt(i * 2);
510 int max_num = pArray->GetIntegerAt(i * 2 + 1); 510 int max_num = pArray->GetIntegerAt(i * 2 + 1);
511 pCompData[i].m_ColorKeyMin = std::max(min_num, 0); 511 pCompData[i].m_ColorKeyMin = std::max(min_num, 0);
512 pCompData[i].m_ColorKeyMax = std::min(max_num, max_data); 512 pCompData[i].m_ColorKeyMax = std::min(max_num, max_data);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 } 544 }
545 const uint8_t* src_data = m_pStreamAcc->GetData(); 545 const uint8_t* src_data = m_pStreamAcc->GetData();
546 uint32_t src_size = m_pStreamAcc->GetSize(); 546 uint32_t src_size = m_pStreamAcc->GetSize();
547 const CPDF_Dictionary* pParams = m_pStreamAcc->GetImageParam(); 547 const CPDF_Dictionary* pParams = m_pStreamAcc->GetImageParam();
548 if (decoder == "CCITTFaxDecode") { 548 if (decoder == "CCITTFaxDecode") {
549 m_pDecoder.reset(FPDFAPI_CreateFaxDecoder(src_data, src_size, m_Width, 549 m_pDecoder.reset(FPDFAPI_CreateFaxDecoder(src_data, src_size, m_Width,
550 m_Height, pParams)); 550 m_Height, pParams));
551 } else if (decoder == "DCTDecode") { 551 } else if (decoder == "DCTDecode") {
552 m_pDecoder.reset(CPDF_ModuleMgr::Get()->GetJpegModule()->CreateDecoder( 552 m_pDecoder.reset(CPDF_ModuleMgr::Get()->GetJpegModule()->CreateDecoder(
553 src_data, src_size, m_Width, m_Height, m_nComponents, 553 src_data, src_size, m_Width, m_Height, m_nComponents,
554 pParams ? pParams->GetIntegerBy("ColorTransform", 1) : 1)); 554 pParams ? pParams->GetIntegerFor("ColorTransform", 1) : 1));
555 if (!m_pDecoder) { 555 if (!m_pDecoder) {
556 bool bTransform = false; 556 bool bTransform = false;
557 int comps; 557 int comps;
558 int bpc; 558 int bpc;
559 CCodec_JpegModule* pJpegModule = CPDF_ModuleMgr::Get()->GetJpegModule(); 559 CCodec_JpegModule* pJpegModule = CPDF_ModuleMgr::Get()->GetJpegModule();
560 if (pJpegModule->LoadInfo(src_data, src_size, &m_Width, &m_Height, &comps, 560 if (pJpegModule->LoadInfo(src_data, src_size, &m_Width, &m_Height, &comps,
561 &bpc, &bTransform)) { 561 &bpc, &bTransform)) {
562 if (m_nComponents != static_cast<uint32_t>(comps)) { 562 if (m_nComponents != static_cast<uint32_t>(comps)) {
563 FX_Free(m_pCompData); 563 FX_Free(m_pCompData);
564 m_pCompData = nullptr; 564 m_pCompData = nullptr;
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 *scanline = (*scanline) >> scale; 693 *scanline = (*scanline) >> scale;
694 ++scanline; 694 ++scanline;
695 } 695 }
696 } 696 }
697 } 697 }
698 m_bpc = 8; 698 m_bpc = 8;
699 } 699 }
700 700
701 CPDF_DIBSource* CPDF_DIBSource::LoadMask(uint32_t& MatteColor) { 701 CPDF_DIBSource* CPDF_DIBSource::LoadMask(uint32_t& MatteColor) {
702 MatteColor = 0xFFFFFFFF; 702 MatteColor = 0xFFFFFFFF;
703 CPDF_Stream* pSoftMask = m_pDict->GetStreamBy("SMask"); 703 CPDF_Stream* pSoftMask = m_pDict->GetStreamFor("SMask");
704 if (pSoftMask) { 704 if (pSoftMask) {
705 CPDF_Array* pMatte = pSoftMask->GetDict()->GetArrayBy("Matte"); 705 CPDF_Array* pMatte = pSoftMask->GetDict()->GetArrayFor("Matte");
706 if (pMatte && m_pColorSpace && 706 if (pMatte && m_pColorSpace &&
707 m_pColorSpace->CountComponents() <= m_nComponents) { 707 m_pColorSpace->CountComponents() <= m_nComponents) {
708 std::vector<FX_FLOAT> colors(m_nComponents); 708 std::vector<FX_FLOAT> colors(m_nComponents);
709 for (uint32_t i = 0; i < m_nComponents; i++) { 709 for (uint32_t i = 0; i < m_nComponents; i++) {
710 colors[i] = pMatte->GetFloatAt(i); 710 colors[i] = pMatte->GetFloatAt(i);
711 } 711 }
712 FX_FLOAT R, G, B; 712 FX_FLOAT R, G, B;
713 m_pColorSpace->GetRGB(colors.data(), R, G, B); 713 m_pColorSpace->GetRGB(colors.data(), R, G, B);
714 MatteColor = FXARGB_MAKE(0, FXSYS_round(R * 255), FXSYS_round(G * 255), 714 MatteColor = FXARGB_MAKE(0, FXSYS_round(R * 255), FXSYS_round(G * 255),
715 FXSYS_round(B * 255)); 715 FXSYS_round(B * 255));
716 } 716 }
717 return LoadMaskDIB(pSoftMask); 717 return LoadMaskDIB(pSoftMask);
718 } 718 }
719 719
720 if (CPDF_Stream* pStream = ToStream(m_pDict->GetDirectObjectBy("Mask"))) 720 if (CPDF_Stream* pStream = ToStream(m_pDict->GetDirectObjectFor("Mask")))
721 return LoadMaskDIB(pStream); 721 return LoadMaskDIB(pStream);
722 722
723 return nullptr; 723 return nullptr;
724 } 724 }
725 725
726 int CPDF_DIBSource::StratLoadMask() { 726 int CPDF_DIBSource::StratLoadMask() {
727 m_MatteColor = 0XFFFFFFFF; 727 m_MatteColor = 0XFFFFFFFF;
728 m_pMaskStream = m_pDict->GetStreamBy("SMask"); 728 m_pMaskStream = m_pDict->GetStreamFor("SMask");
729 if (m_pMaskStream) { 729 if (m_pMaskStream) {
730 CPDF_Array* pMatte = m_pMaskStream->GetDict()->GetArrayBy("Matte"); 730 CPDF_Array* pMatte = m_pMaskStream->GetDict()->GetArrayFor("Matte");
731 if (pMatte && m_pColorSpace && 731 if (pMatte && m_pColorSpace &&
732 m_pColorSpace->CountComponents() <= m_nComponents) { 732 m_pColorSpace->CountComponents() <= m_nComponents) {
733 FX_FLOAT R, G, B; 733 FX_FLOAT R, G, B;
734 std::vector<FX_FLOAT> colors(m_nComponents); 734 std::vector<FX_FLOAT> colors(m_nComponents);
735 for (uint32_t i = 0; i < m_nComponents; i++) { 735 for (uint32_t i = 0; i < m_nComponents; i++) {
736 colors[i] = pMatte->GetFloatAt(i); 736 colors[i] = pMatte->GetFloatAt(i);
737 } 737 }
738 m_pColorSpace->GetRGB(colors.data(), R, G, B); 738 m_pColorSpace->GetRGB(colors.data(), R, G, B);
739 m_MatteColor = FXARGB_MAKE(0, FXSYS_round(R * 255), FXSYS_round(G * 255), 739 m_MatteColor = FXARGB_MAKE(0, FXSYS_round(R * 255), FXSYS_round(G * 255),
740 FXSYS_round(B * 255)); 740 FXSYS_round(B * 255));
741 } 741 }
742 return StartLoadMaskDIB(); 742 return StartLoadMaskDIB();
743 } 743 }
744 744
745 m_pMaskStream = ToStream(m_pDict->GetDirectObjectBy("Mask")); 745 m_pMaskStream = ToStream(m_pDict->GetDirectObjectFor("Mask"));
746 return m_pMaskStream ? StartLoadMaskDIB() : 1; 746 return m_pMaskStream ? StartLoadMaskDIB() : 1;
747 } 747 }
748 748
749 int CPDF_DIBSource::ContinueLoadMaskDIB(IFX_Pause* pPause) { 749 int CPDF_DIBSource::ContinueLoadMaskDIB(IFX_Pause* pPause) {
750 if (!m_pMask) { 750 if (!m_pMask) {
751 return 1; 751 return 1;
752 } 752 }
753 int ret = m_pMask->ContinueLoadDIBSource(pPause); 753 int ret = m_pMask->ContinueLoadDIBSource(pPause);
754 if (ret == 2) { 754 if (ret == 2) {
755 return ret; 755 return ret;
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 m_pColorSpace->GetRGB(color_value, R, G, B); 862 m_pColorSpace->GetRGB(color_value, R, G, B);
863 } 863 }
864 SetPaletteArgb(i, ArgbEncode(255, FXSYS_round(R * 255), 864 SetPaletteArgb(i, ArgbEncode(255, FXSYS_round(R * 255),
865 FXSYS_round(G * 255), FXSYS_round(B * 255))); 865 FXSYS_round(G * 255), FXSYS_round(B * 255)));
866 } 866 }
867 } 867 }
868 } 868 }
869 869
870 void CPDF_DIBSource::ValidateDictParam() { 870 void CPDF_DIBSource::ValidateDictParam() {
871 m_bpc = m_bpc_orig; 871 m_bpc = m_bpc_orig;
872 CPDF_Object* pFilter = m_pDict->GetDirectObjectBy("Filter"); 872 CPDF_Object* pFilter = m_pDict->GetDirectObjectFor("Filter");
873 if (pFilter) { 873 if (pFilter) {
874 if (pFilter->IsName()) { 874 if (pFilter->IsName()) {
875 CFX_ByteString filter = pFilter->GetString(); 875 CFX_ByteString filter = pFilter->GetString();
876 if (filter == "CCITTFaxDecode" || filter == "JBIG2Decode") { 876 if (filter == "CCITTFaxDecode" || filter == "JBIG2Decode") {
877 m_bpc = 1; 877 m_bpc = 1;
878 m_nComponents = 1; 878 m_nComponents = 1;
879 } else if (filter == "RunLengthDecode") { 879 } else if (filter == "RunLengthDecode") {
880 if (m_bpc != 1) { 880 if (m_bpc != 1) {
881 m_bpc = 8; 881 m_bpc = 8;
882 } 882 }
(...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after
1550 IFX_Pause* pPause) { 1550 IFX_Pause* pPause) {
1551 return LoadHandle->Continue(pPause); 1551 return LoadHandle->Continue(pPause);
1552 } 1552 }
1553 1553
1554 CPDF_ImageLoader::~CPDF_ImageLoader() { 1554 CPDF_ImageLoader::~CPDF_ImageLoader() {
1555 if (!m_bCached) { 1555 if (!m_bCached) {
1556 delete m_pBitmap; 1556 delete m_pBitmap;
1557 delete m_pMask; 1557 delete m_pMask;
1558 } 1558 }
1559 } 1559 }
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_render/fpdf_render_image.cpp ('k') | core/fpdfapi/fpdf_render/fpdf_render_pattern.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698