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

Side by Side Diff: core/fpdfapi/fpdf_page/cpdf_image.cpp

Issue 1832173003: Remove FX_DWORD from core/ and delete definition (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « core/fpdfapi/fpdf_page/cpdf_generalstate.cpp ('k') | core/fpdfapi/fpdf_page/cpdf_meshstream.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 PDFium Authors. All rights reserved. 1 // Copyright 2016 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_page/include/cpdf_image.h" 7 #include "core/fpdfapi/fpdf_page/include/cpdf_image.h"
8 8
9 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" 9 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h"
10 #include "core/fpdfapi/include/cpdf_modulemgr.h" 10 #include "core/fpdfapi/include/cpdf_modulemgr.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 } 67 }
68 m_pOC = pDict->GetDictBy("OC"); 68 m_pOC = pDict->GetDictBy("OC");
69 m_bIsMask = 69 m_bIsMask =
70 !pDict->KeyExist("ColorSpace") || pDict->GetIntegerBy("ImageMask"); 70 !pDict->KeyExist("ColorSpace") || pDict->GetIntegerBy("ImageMask");
71 m_bInterpolate = pDict->GetIntegerBy("Interpolate"); 71 m_bInterpolate = pDict->GetIntegerBy("Interpolate");
72 m_Height = pDict->GetIntegerBy("Height"); 72 m_Height = pDict->GetIntegerBy("Height");
73 m_Width = pDict->GetIntegerBy("Width"); 73 m_Width = pDict->GetIntegerBy("Width");
74 return TRUE; 74 return TRUE;
75 } 75 }
76 76
77 CPDF_Dictionary* CPDF_Image::InitJPEG(uint8_t* pData, FX_DWORD size) { 77 CPDF_Dictionary* CPDF_Image::InitJPEG(uint8_t* pData, uint32_t size) {
78 int32_t width; 78 int32_t width;
79 int32_t height; 79 int32_t height;
80 int32_t num_comps; 80 int32_t num_comps;
81 int32_t bits; 81 int32_t bits;
82 FX_BOOL color_trans; 82 FX_BOOL color_trans;
83 if (!CPDF_ModuleMgr::Get()->GetJpegModule()->LoadInfo( 83 if (!CPDF_ModuleMgr::Get()->GetJpegModule()->LoadInfo(
84 pData, size, width, height, num_comps, bits, color_trans)) { 84 pData, size, width, height, num_comps, bits, color_trans)) {
85 return NULL; 85 return NULL;
86 } 86 }
87 CPDF_Dictionary* pDict = new CPDF_Dictionary; 87 CPDF_Dictionary* pDict = new CPDF_Dictionary;
(...skipping 25 matching lines...) Expand all
113 } 113 }
114 m_bIsMask = FALSE; 114 m_bIsMask = FALSE;
115 m_Width = width; 115 m_Width = width;
116 m_Height = height; 116 m_Height = height;
117 if (!m_pStream) { 117 if (!m_pStream) {
118 m_pStream = new CPDF_Stream(NULL, 0, NULL); 118 m_pStream = new CPDF_Stream(NULL, 0, NULL);
119 } 119 }
120 return pDict; 120 return pDict;
121 } 121 }
122 122
123 void CPDF_Image::SetJpegImage(uint8_t* pData, FX_DWORD size) { 123 void CPDF_Image::SetJpegImage(uint8_t* pData, uint32_t size) {
124 CPDF_Dictionary* pDict = InitJPEG(pData, size); 124 CPDF_Dictionary* pDict = InitJPEG(pData, size);
125 if (!pDict) { 125 if (!pDict) {
126 return; 126 return;
127 } 127 }
128 m_pStream->InitStream(pData, size, pDict); 128 m_pStream->InitStream(pData, size, pDict);
129 } 129 }
130 130
131 void CPDF_Image::SetJpegImage(IFX_FileRead* pFile) { 131 void CPDF_Image::SetJpegImage(IFX_FileRead* pFile) {
132 FX_DWORD size = (FX_DWORD)pFile->GetSize(); 132 uint32_t size = (uint32_t)pFile->GetSize();
133 if (!size) { 133 if (!size) {
134 return; 134 return;
135 } 135 }
136 FX_DWORD dwEstimateSize = size; 136 uint32_t dwEstimateSize = size;
137 if (dwEstimateSize > 8192) { 137 if (dwEstimateSize > 8192) {
138 dwEstimateSize = 8192; 138 dwEstimateSize = 8192;
139 } 139 }
140 uint8_t* pData = FX_Alloc(uint8_t, dwEstimateSize); 140 uint8_t* pData = FX_Alloc(uint8_t, dwEstimateSize);
141 pFile->ReadBlock(pData, 0, dwEstimateSize); 141 pFile->ReadBlock(pData, 0, dwEstimateSize);
142 CPDF_Dictionary* pDict = InitJPEG(pData, dwEstimateSize); 142 CPDF_Dictionary* pDict = InitJPEG(pData, dwEstimateSize);
143 FX_Free(pData); 143 FX_Free(pData);
144 if (!pDict && size > dwEstimateSize) { 144 if (!pDict && size > dwEstimateSize) {
145 pData = FX_Alloc(uint8_t, size); 145 pData = FX_Alloc(uint8_t, size);
146 pFile->ReadBlock(pData, 0, size); 146 pFile->ReadBlock(pData, 0, size);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 int32_t iPalette = pBitmap->GetPaletteSize(); 214 int32_t iPalette = pBitmap->GetPaletteSize();
215 if (iPalette > 0) { 215 if (iPalette > 0) {
216 CPDF_Array* pCS = new CPDF_Array; 216 CPDF_Array* pCS = new CPDF_Array;
217 m_pDocument->AddIndirectObject(pCS); 217 m_pDocument->AddIndirectObject(pCS);
218 pCS->AddName("Indexed"); 218 pCS->AddName("Indexed");
219 pCS->AddName("DeviceRGB"); 219 pCS->AddName("DeviceRGB");
220 pCS->AddInteger(iPalette - 1); 220 pCS->AddInteger(iPalette - 1);
221 uint8_t* pColorTable = FX_Alloc2D(uint8_t, iPalette, 3); 221 uint8_t* pColorTable = FX_Alloc2D(uint8_t, iPalette, 3);
222 uint8_t* ptr = pColorTable; 222 uint8_t* ptr = pColorTable;
223 for (int32_t i = 0; i < iPalette; i++) { 223 for (int32_t i = 0; i < iPalette; i++) {
224 FX_DWORD argb = pBitmap->GetPaletteArgb(i); 224 uint32_t argb = pBitmap->GetPaletteArgb(i);
225 ptr[0] = (uint8_t)(argb >> 16); 225 ptr[0] = (uint8_t)(argb >> 16);
226 ptr[1] = (uint8_t)(argb >> 8); 226 ptr[1] = (uint8_t)(argb >> 8);
227 ptr[2] = (uint8_t)argb; 227 ptr[2] = (uint8_t)argb;
228 ptr += 3; 228 ptr += 3;
229 } 229 }
230 CPDF_Stream* pCTS = 230 CPDF_Stream* pCTS =
231 new CPDF_Stream(pColorTable, iPalette * 3, new CPDF_Dictionary); 231 new CPDF_Stream(pColorTable, iPalette * 3, new CPDF_Dictionary);
232 m_pDocument->AddIndirectObject(pCTS); 232 m_pDocument->AddIndirectObject(pCTS);
233 pCS->AddReference(m_pDocument, pCTS); 233 pCS->AddReference(m_pDocument, pCTS);
234 pDict->SetAtReference("ColorSpace", m_pDocument, pCS); 234 pDict->SetAtReference("ColorSpace", m_pDocument, pCS);
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 m_Width = BitmapWidth; 350 m_Width = BitmapWidth;
351 m_Height = BitmapHeight; 351 m_Height = BitmapHeight;
352 FX_Free(dest_buf); 352 FX_Free(dest_buf);
353 } 353 }
354 354
355 void CPDF_Image::ResetCache(CPDF_Page* pPage, const CFX_DIBitmap* pBitmap) { 355 void CPDF_Image::ResetCache(CPDF_Page* pPage, const CFX_DIBitmap* pBitmap) {
356 pPage->GetRenderCache()->ResetBitmap(m_pStream, pBitmap); 356 pPage->GetRenderCache()->ResetBitmap(m_pStream, pBitmap);
357 } 357 }
358 358
359 CFX_DIBSource* CPDF_Image::LoadDIBSource(CFX_DIBSource** ppMask, 359 CFX_DIBSource* CPDF_Image::LoadDIBSource(CFX_DIBSource** ppMask,
360 FX_DWORD* pMatteColor, 360 uint32_t* pMatteColor,
361 FX_BOOL bStdCS, 361 FX_BOOL bStdCS,
362 FX_DWORD GroupFamily, 362 uint32_t GroupFamily,
363 FX_BOOL bLoadMask) const { 363 FX_BOOL bLoadMask) const {
364 std::unique_ptr<CPDF_DIBSource> source(new CPDF_DIBSource); 364 std::unique_ptr<CPDF_DIBSource> source(new CPDF_DIBSource);
365 if (source->Load(m_pDocument, m_pStream, 365 if (source->Load(m_pDocument, m_pStream,
366 reinterpret_cast<CPDF_DIBSource**>(ppMask), pMatteColor, 366 reinterpret_cast<CPDF_DIBSource**>(ppMask), pMatteColor,
367 nullptr, nullptr, bStdCS, GroupFamily, bLoadMask)) { 367 nullptr, nullptr, bStdCS, GroupFamily, bLoadMask)) {
368 return source.release(); 368 return source.release();
369 } 369 }
370 return nullptr; 370 return nullptr;
371 } 371 }
372 372
373 CFX_DIBSource* CPDF_Image::DetachBitmap() { 373 CFX_DIBSource* CPDF_Image::DetachBitmap() {
374 CFX_DIBSource* pBitmap = m_pDIBSource; 374 CFX_DIBSource* pBitmap = m_pDIBSource;
375 m_pDIBSource = nullptr; 375 m_pDIBSource = nullptr;
376 return pBitmap; 376 return pBitmap;
377 } 377 }
378 378
379 CFX_DIBSource* CPDF_Image::DetachMask() { 379 CFX_DIBSource* CPDF_Image::DetachMask() {
380 CFX_DIBSource* pBitmap = m_pMask; 380 CFX_DIBSource* pBitmap = m_pMask;
381 m_pMask = nullptr; 381 m_pMask = nullptr;
382 return pBitmap; 382 return pBitmap;
383 } 383 }
384 384
385 FX_BOOL CPDF_Image::StartLoadDIBSource(CPDF_Dictionary* pFormResource, 385 FX_BOOL CPDF_Image::StartLoadDIBSource(CPDF_Dictionary* pFormResource,
386 CPDF_Dictionary* pPageResource, 386 CPDF_Dictionary* pPageResource,
387 FX_BOOL bStdCS, 387 FX_BOOL bStdCS,
388 FX_DWORD GroupFamily, 388 uint32_t GroupFamily,
389 FX_BOOL bLoadMask) { 389 FX_BOOL bLoadMask) {
390 std::unique_ptr<CPDF_DIBSource> source(new CPDF_DIBSource); 390 std::unique_ptr<CPDF_DIBSource> source(new CPDF_DIBSource);
391 int ret = 391 int ret =
392 source->StartLoadDIBSource(m_pDocument, m_pStream, TRUE, pFormResource, 392 source->StartLoadDIBSource(m_pDocument, m_pStream, TRUE, pFormResource,
393 pPageResource, bStdCS, GroupFamily, bLoadMask); 393 pPageResource, bStdCS, GroupFamily, bLoadMask);
394 if (ret == 2) { 394 if (ret == 2) {
395 m_pDIBSource = source.release(); 395 m_pDIBSource = source.release();
396 return TRUE; 396 return TRUE;
397 } 397 }
398 if (!ret) { 398 if (!ret) {
(...skipping 14 matching lines...) Expand all
413 } 413 }
414 if (!ret) { 414 if (!ret) {
415 delete m_pDIBSource; 415 delete m_pDIBSource;
416 m_pDIBSource = nullptr; 416 m_pDIBSource = nullptr;
417 return FALSE; 417 return FALSE;
418 } 418 }
419 m_pMask = pSource->DetachMask(); 419 m_pMask = pSource->DetachMask();
420 m_MatteColor = pSource->GetMatteColor(); 420 m_MatteColor = pSource->GetMatteColor();
421 return FALSE; 421 return FALSE;
422 } 422 }
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_page/cpdf_generalstate.cpp ('k') | core/fpdfapi/fpdf_page/cpdf_meshstream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698