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

Side by Side Diff: core/fxcodec/codec/fx_codec_icc.cpp

Issue 1876023003: Remove ICodec_* Interfaces. (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/fxcodec/codec/fx_codec_gif.cpp ('k') | core/fxcodec/codec/fx_codec_jbig.cpp » ('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 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/fxcodec/codec/codec_int.h" 7 #include "core/fxcodec/codec/codec_int.h"
8 #include "core/fxcodec/include/fx_codec.h" 8 #include "core/fxcodec/include/fx_codec.h"
9 #include "third_party/lcms2-2.6/include/lcms2.h" 9 #include "third_party/lcms2-2.6/include/lcms2.h"
10 10
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 return NULL; 244 return NULL;
245 } 245 }
246 cmsToneCurve* curve = cmsBuildGamma(NULL, gamma); 246 cmsToneCurve* curve = cmsBuildGamma(NULL, gamma);
247 if (!curve) { 247 if (!curve) {
248 return NULL; 248 return NULL;
249 } 249 }
250 void* profile = cmsCreateGrayProfile(D50, curve); 250 void* profile = cmsCreateGrayProfile(D50, curve);
251 cmsFreeToneCurve(curve); 251 cmsFreeToneCurve(curve);
252 return profile; 252 return profile;
253 } 253 }
254 ICodec_IccModule::IccCS GetProfileCSFromHandle(void* pProfile) { 254 CCodec_IccModule::IccCS GetProfileCSFromHandle(void* pProfile) {
255 if (!pProfile) { 255 if (!pProfile) {
256 return ICodec_IccModule::IccCS_Unknown; 256 return CCodec_IccModule::IccCS_Unknown;
257 } 257 }
258 switch (cmsGetColorSpace(pProfile)) { 258 switch (cmsGetColorSpace(pProfile)) {
259 case cmsSigXYZData: 259 case cmsSigXYZData:
260 return ICodec_IccModule::IccCS_XYZ; 260 return CCodec_IccModule::IccCS_XYZ;
261 case cmsSigLabData: 261 case cmsSigLabData:
262 return ICodec_IccModule::IccCS_Lab; 262 return CCodec_IccModule::IccCS_Lab;
263 case cmsSigLuvData: 263 case cmsSigLuvData:
264 return ICodec_IccModule::IccCS_Luv; 264 return CCodec_IccModule::IccCS_Luv;
265 case cmsSigYCbCrData: 265 case cmsSigYCbCrData:
266 return ICodec_IccModule::IccCS_YCbCr; 266 return CCodec_IccModule::IccCS_YCbCr;
267 case cmsSigYxyData: 267 case cmsSigYxyData:
268 return ICodec_IccModule::IccCS_Yxy; 268 return CCodec_IccModule::IccCS_Yxy;
269 case cmsSigRgbData: 269 case cmsSigRgbData:
270 return ICodec_IccModule::IccCS_Rgb; 270 return CCodec_IccModule::IccCS_Rgb;
271 case cmsSigGrayData: 271 case cmsSigGrayData:
272 return ICodec_IccModule::IccCS_Gray; 272 return CCodec_IccModule::IccCS_Gray;
273 case cmsSigHsvData: 273 case cmsSigHsvData:
274 return ICodec_IccModule::IccCS_Hsv; 274 return CCodec_IccModule::IccCS_Hsv;
275 case cmsSigHlsData: 275 case cmsSigHlsData:
276 return ICodec_IccModule::IccCS_Hls; 276 return CCodec_IccModule::IccCS_Hls;
277 case cmsSigCmykData: 277 case cmsSigCmykData:
278 return ICodec_IccModule::IccCS_Cmyk; 278 return CCodec_IccModule::IccCS_Cmyk;
279 case cmsSigCmyData: 279 case cmsSigCmyData:
280 return ICodec_IccModule::IccCS_Cmy; 280 return CCodec_IccModule::IccCS_Cmy;
281 default: 281 default:
282 return ICodec_IccModule::IccCS_Unknown; 282 return CCodec_IccModule::IccCS_Unknown;
283 } 283 }
284 } 284 }
285 ICodec_IccModule::IccCS CCodec_IccModule::GetProfileCS( 285 CCodec_IccModule::IccCS CCodec_IccModule::GetProfileCS(
286 const uint8_t* pProfileData, 286 const uint8_t* pProfileData,
287 uint32_t dwProfileSize) { 287 uint32_t dwProfileSize) {
288 ICodec_IccModule::IccCS cs; 288 CCodec_IccModule::IccCS cs;
289 cmsHPROFILE hProfile = 289 cmsHPROFILE hProfile =
290 cmsOpenProfileFromMem((void*)pProfileData, dwProfileSize); 290 cmsOpenProfileFromMem((void*)pProfileData, dwProfileSize);
291 if (!hProfile) { 291 if (!hProfile) {
292 return IccCS_Unknown; 292 return IccCS_Unknown;
293 } 293 }
294 cs = GetProfileCSFromHandle(hProfile); 294 cs = GetProfileCSFromHandle(hProfile);
295 if (hProfile) { 295 if (hProfile) {
296 cmsCloseProfile(hProfile); 296 cmsCloseProfile(hProfile);
297 } 297 }
298 return cs; 298 return cs;
299 } 299 }
300 ICodec_IccModule::IccCS CCodec_IccModule::GetProfileCS(IFX_FileRead* pFile) { 300 CCodec_IccModule::IccCS CCodec_IccModule::GetProfileCS(IFX_FileRead* pFile) {
301 if (!pFile) { 301 if (!pFile) {
302 return IccCS_Unknown; 302 return IccCS_Unknown;
303 } 303 }
304 ICodec_IccModule::IccCS cs; 304 CCodec_IccModule::IccCS cs;
305 uint32_t dwSize = (uint32_t)pFile->GetSize(); 305 uint32_t dwSize = (uint32_t)pFile->GetSize();
306 uint8_t* pBuf = FX_Alloc(uint8_t, dwSize); 306 uint8_t* pBuf = FX_Alloc(uint8_t, dwSize);
307 pFile->ReadBlock(pBuf, 0, dwSize); 307 pFile->ReadBlock(pBuf, 0, dwSize);
308 cs = GetProfileCS(pBuf, dwSize); 308 cs = GetProfileCS(pBuf, dwSize);
309 FX_Free(pBuf); 309 FX_Free(pBuf);
310 return cs; 310 return cs;
311 } 311 }
312 uint32_t TransferProfileType(void* pProfile, uint32_t dwFormat) { 312 uint32_t TransferProfileType(void* pProfile, uint32_t dwFormat) {
313 cmsColorSpaceSignature cs = cmsGetColorSpace(pProfile); 313 cmsColorSpaceSignature cs = cmsGetColorSpace(pProfile);
314 switch (cs) { 314 switch (cs) {
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 void CFX_IccTransformCache::Purge() {} 399 void CFX_IccTransformCache::Purge() {}
400 class CFX_ByteStringKey : public CFX_BinaryBuf { 400 class CFX_ByteStringKey : public CFX_BinaryBuf {
401 public: 401 public:
402 CFX_ByteStringKey() : CFX_BinaryBuf() {} 402 CFX_ByteStringKey() : CFX_BinaryBuf() {}
403 CFX_ByteStringKey& operator<<(uint32_t i); 403 CFX_ByteStringKey& operator<<(uint32_t i);
404 }; 404 };
405 CFX_ByteStringKey& CFX_ByteStringKey::operator<<(uint32_t i) { 405 CFX_ByteStringKey& CFX_ByteStringKey::operator<<(uint32_t i) {
406 AppendBlock(&i, sizeof(uint32_t)); 406 AppendBlock(&i, sizeof(uint32_t));
407 return *this; 407 return *this;
408 } 408 }
409 void* CCodec_IccModule::CreateProfile(ICodec_IccModule::IccParam* pIccParam, 409 void* CCodec_IccModule::CreateProfile(CCodec_IccModule::IccParam* pIccParam,
410 Icc_CLASS ic, 410 Icc_CLASS ic,
411 CFX_BinaryBuf* pTransformKey) { 411 CFX_BinaryBuf* pTransformKey) {
412 CFX_IccProfileCache* pCache = NULL; 412 CFX_IccProfileCache* pCache = NULL;
413 CFX_ByteStringKey key; 413 CFX_ByteStringKey key;
414 CFX_ByteString text; 414 CFX_ByteString text;
415 key << pIccParam->ColorSpace << (pIccParam->dwProfileType | ic << 8); 415 key << pIccParam->ColorSpace << (pIccParam->dwProfileType | ic << 8);
416 uint8_t ID[16]; 416 uint8_t ID[16];
417 switch (pIccParam->dwProfileType) { 417 switch (pIccParam->dwProfileType) {
418 case Icc_PARAMTYPE_NONE: 418 case Icc_PARAMTYPE_NONE:
419 return NULL; 419 return NULL;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 break; 462 break;
463 } 463 }
464 m_MapProfile[ProfileKey] = pCache; 464 m_MapProfile[ProfileKey] = pCache;
465 } else { 465 } else {
466 pCache = it->second; 466 pCache = it->second;
467 pCache->m_dwRate++; 467 pCache->m_dwRate++;
468 } 468 }
469 return pCache->m_pProfile; 469 return pCache->m_pProfile;
470 } 470 }
471 void* CCodec_IccModule::CreateTransform( 471 void* CCodec_IccModule::CreateTransform(
472 ICodec_IccModule::IccParam* pInputParam, 472 CCodec_IccModule::IccParam* pInputParam,
473 ICodec_IccModule::IccParam* pOutputParam, 473 CCodec_IccModule::IccParam* pOutputParam,
474 ICodec_IccModule::IccParam* pProofParam, 474 CCodec_IccModule::IccParam* pProofParam,
475 uint32_t dwIntent, 475 uint32_t dwIntent,
476 uint32_t dwFlag, 476 uint32_t dwFlag,
477 uint32_t dwPrfIntent, 477 uint32_t dwPrfIntent,
478 uint32_t dwPrfFlag) { 478 uint32_t dwPrfFlag) {
479 CLcmsCmm* pCmm = NULL; 479 CLcmsCmm* pCmm = NULL;
480 ASSERT(pInputParam && pOutputParam); 480 ASSERT(pInputParam && pOutputParam);
481 CFX_ByteStringKey key; 481 CFX_ByteStringKey key;
482 void* pInputProfile = CreateProfile(pInputParam, Icc_CLASS_INPUT, &key); 482 void* pInputProfile = CreateProfile(pInputParam, Icc_CLASS_INPUT, &key);
483 if (!pInputProfile) { 483 if (!pInputProfile) {
484 return NULL; 484 return NULL;
(...skipping 1492 matching lines...) Expand 10 before | Expand all | Expand 10 after
1977 uint8_t c1 = FXSYS_round(c * 255); 1977 uint8_t c1 = FXSYS_round(c * 255);
1978 uint8_t m1 = FXSYS_round(m * 255); 1978 uint8_t m1 = FXSYS_round(m * 255);
1979 uint8_t y1 = FXSYS_round(y * 255); 1979 uint8_t y1 = FXSYS_round(y * 255);
1980 uint8_t k1 = FXSYS_round(k * 255); 1980 uint8_t k1 = FXSYS_round(k * 255);
1981 uint8_t r, g, b; 1981 uint8_t r, g, b;
1982 AdobeCMYK_to_sRGB1(c1, m1, y1, k1, r, g, b); 1982 AdobeCMYK_to_sRGB1(c1, m1, y1, k1, r, g, b);
1983 R = 1.0f * r / 255; 1983 R = 1.0f * r / 255;
1984 G = 1.0f * g / 255; 1984 G = 1.0f * g / 255;
1985 B = 1.0f * b / 255; 1985 B = 1.0f * b / 255;
1986 } 1986 }
OLDNEW
« no previous file with comments | « core/fxcodec/codec/fx_codec_gif.cpp ('k') | core/fxcodec/codec/fx_codec_jbig.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698