亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? libmng_cms.c

?? 一款最完整的工業(yè)組態(tài)軟源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* ************************************************************************** */
/* *             For conditions of distribution and use,                    * */
/* *                see copyright notice in libmng.h                        * */
/* ************************************************************************** */
/* *                                                                        * */
/* * project   : libmng                                                     * */
/* * file      : libmng_cms.c              copyright (c) 2000-2003 G.Juyn   * */
/* * version   : 1.0.6                                                      * */
/* *                                                                        * */
/* * purpose   : color management routines (implementation)                 * */
/* *                                                                        * */
/* * author    : G.Juyn                                                     * */
/* *                                                                        * */
/* * comment   : implementation of the color management routines            * */
/* *                                                                        * */
/* * changes   : 0.5.1 - 05/01/2000 - G.Juyn                                * */
/* *             - B001(105795) - fixed a typo and misconception about      * */
/* *               freeing allocated gamma-table. (reported by Marti Maria) * */
/* *             0.5.1 - 05/08/2000 - G.Juyn                                * */
/* *             - changed strict-ANSI stuff                                * */
/* *             0.5.1 - 05/09/2000 - G.Juyn                                * */
/* *             - filled application-based color-management routines       * */
/* *             0.5.1 - 05/11/2000 - G.Juyn                                * */
/* *             - added creatememprofile                                   * */
/* *             - added callback error-reporting support                   * */
/* *             0.5.1 - 05/12/2000 - G.Juyn                                * */
/* *             - changed trace to macro for callback error-reporting      * */
/* *                                                                        * */
/* *             0.5.2 - 06/10/2000 - G.Juyn                                * */
/* *             - fixed some compilation-warnings (contrib Jason Morris)   * */
/* *                                                                        * */
/* *             0.5.3 - 06/21/2000 - G.Juyn                                * */
/* *             - fixed problem with color-correction for stored images    * */
/* *             0.5.3 - 06/23/2000 - G.Juyn                                * */
/* *             - fixed problem with incorrect gamma-correction            * */
/* *                                                                        * */
/* *             0.9.2 - 08/05/2000 - G.Juyn                                * */
/* *             - changed file-prefixes                                    * */
/* *                                                                        * */
/* *             0.9.3 - 08/31/2000 - G.Juyn                                * */
/* *             - fixed sRGB precedence for gamma_only corection           * */
/* *                                                                        * */
/* *             0.9.4 - 12/16/2000 - G.Juyn                                * */
/* *             - fixed mixup of data- & function-pointers (thanks Dimitri)* */
/* *                                                                        * */
/* *             1.0.1 - 03/31/2001 - G.Juyn                                * */
/* *             - ignore gamma=0 (see png-list for more info)              * */
/* *             1.0.1 - 04/25/2001 - G.Juyn (reported by Gregg Kelly)      * */
/* *             - fixed problem with cms profile being created multiple    * */
/* *               times when both iCCP & cHRM/gAMA are present             * */
/* *             1.0.1 - 04/25/2001 - G.Juyn                                * */
/* *             - moved mng_clear_cms to libmng_cms                        * */
/* *             1.0.1 - 05/02/2001 - G.Juyn                                * */
/* *             - added "default" sRGB generation (Thanks Marti!)          * */
/* *                                                                        * */
/* *             1.0.5 - 08/19/2002 - G.Juyn                                * */
/* *             - B597134 - libmng pollutes the linker namespace           * */
/* *             1.0.5 - 09/19/2002 - G.Juyn                                * */
/* *             - optimized color-correction routines                      * */
/* *             1.0.5 - 09/23/2002 - G.Juyn                                * */
/* *             - added in-memory color-correction of abstract images      * */
/* *             1.0.5 - 11/08/2002 - G.Juyn                                * */
/* *             - fixed issues in init_app_cms()                           * */
/* *                                                                        * */
/* *             1.0.6 - 04/11/2003 - G.Juyn                                * */
/* *             - B719420 - fixed several MNG_APP_CMS problems             * */
/* *             1.0.6 - 07/11/2003 - G. R-P                                * */
/* *             - added conditional MNG_SKIPCHUNK_cHRM/iCCP                * */
/* *                                                                        * */
/* ************************************************************************** */

#include "libmng.h"
#include "libmng_data.h"
#include "libmng_error.h"
#include "libmng_trace.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#include "libmng_objects.h"
#include "libmng_cms.h"

#if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
#pragma option -A                      /* force ANSI-C */
#endif

/* ************************************************************************** */

#ifdef MNG_INCLUDE_DISPLAY_PROCS

/* ************************************************************************** */
/* *                                                                        * */
/* * Little CMS helper routines                                             * */
/* *                                                                        * */
/* ************************************************************************** */

#ifdef MNG_INCLUDE_LCMS

#define MNG_CMS_FLAGS 0

/* ************************************************************************** */

void mnglcms_initlibrary ()
{
  cmsErrorAction (LCMS_ERROR_IGNORE);  /* LCMS should ignore errors! */
}

/* ************************************************************************** */

mng_cmsprof mnglcms_createfileprofile (mng_pchar zFilename)
{
  return cmsOpenProfileFromFile (zFilename, "r");
}

/* ************************************************************************** */

mng_cmsprof mnglcms_creatememprofile (mng_uint32 iProfilesize,
                                      mng_ptr    pProfile)
{
  return cmsOpenProfileFromMem (pProfile, iProfilesize);
}

/* ************************************************************************** */

mng_cmsprof mnglcms_createsrgbprofile (void)
{
  cmsCIExyY       D65;
  cmsCIExyYTRIPLE Rec709Primaries = {
                                      {0.6400, 0.3300, 1.0},
                                      {0.3000, 0.6000, 1.0},
                                      {0.1500, 0.0600, 1.0}
                                    };
  LPGAMMATABLE    Gamma24[3];
  mng_cmsprof     hsRGB;

  cmsWhitePointFromTemp(6504, &D65);
  Gamma24[0] = Gamma24[1] = Gamma24[2] = cmsBuildGamma(256, 2.4);
  hsRGB = cmsCreateRGBProfile(&D65, &Rec709Primaries, Gamma24);
  cmsFreeGamma(Gamma24[0]);

  return hsRGB;
}

/* ************************************************************************** */

void mnglcms_freeprofile (mng_cmsprof hProf)
{
  cmsCloseProfile (hProf);
  return;
}

/* ************************************************************************** */

void mnglcms_freetransform (mng_cmstrans hTrans)
{
/* B001 start */
  cmsDeleteTransform (hTrans);
/* B001 end */
  return;
}

/* ************************************************************************** */

mng_retcode mng_clear_cms (mng_datap pData)
{
#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_CLEAR_CMS, MNG_LC_START)
#endif

  if (pData->hTrans)                   /* transformation still active ? */
    mnglcms_freetransform (pData->hTrans);

  pData->hTrans = 0;

  if (pData->hProf1)                   /* file profile still active ? */
    mnglcms_freeprofile (pData->hProf1);

  pData->hProf1 = 0;

#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_CLEAR_CMS, MNG_LC_END)
#endif

  return MNG_NOERROR;
}

/* ************************************************************************** */

#endif /* MNG_INCLUDE_LCMS */

/* ************************************************************************** */
/* *                                                                        * */
/* * Color-management initialization & correction routines                  * */
/* *                                                                        * */
/* ************************************************************************** */

#ifdef MNG_INCLUDE_LCMS

mng_retcode mng_init_full_cms (mng_datap pData,
                               mng_bool  bGlobal,
                               mng_bool  bObject,
                               mng_bool  bRetrobj)
{
  mng_cmsprof    hProf;
  mng_cmstrans   hTrans;
  mng_imagep     pImage = MNG_NULL;
  mng_imagedatap pBuf   = MNG_NULL;

#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_INIT_FULL_CMS, MNG_LC_START)
#endif

  if (bObject)                         /* use object if present ? */
  {                                    /* current object ? */
    if ((mng_imagep)pData->pCurrentobj)
      pImage = (mng_imagep)pData->pCurrentobj;
    else                               /* if not; use object 0 */
      pImage = (mng_imagep)pData->pObjzero;
  }

  if (bRetrobj)                        /* retrieving from an object ? */
    pImage = (mng_imagep)pData->pRetrieveobj;

  if (pImage)                          /* are we using an object ? */
    pBuf = pImage->pImgbuf;            /* then address the buffer */

  if ((!pBuf) || (!pBuf->bCorrected))  /* is the buffer already corrected ? */
  {
#ifndef MNG_SKIPCHUNK_iCCP
    if (((pBuf) && (pBuf->bHasICCP)) || ((bGlobal) && (pData->bHasglobalICCP)))
    {
      if (!pData->hProf2)              /* output profile not defined ? */
      {                                /* then assume sRGB !! */
        pData->hProf2 = mnglcms_createsrgbprofile ();

        if (!pData->hProf2)            /* handle error ? */
          MNG_ERRORL (pData, MNG_LCMS_NOHANDLE)
      }

      if ((pBuf) && (pBuf->bHasICCP))  /* generate a profile handle */
        hProf = cmsOpenProfileFromMem (pBuf->pProfile, pBuf->iProfilesize);
      else
        hProf = cmsOpenProfileFromMem (pData->pGlobalProfile, pData->iGlobalProfilesize);

      pData->hProf1 = hProf;           /* save for future use */

      if (!hProf)                      /* handle error ? */
        MNG_ERRORL (pData, MNG_LCMS_NOHANDLE)

#ifndef MNG_NO_16BIT_SUPPORT
      if (pData->bIsRGBA16)            /* 16-bit intermediates ? */
        hTrans = cmsCreateTransform (hProf,         TYPE_RGBA_16_SE,
                                     pData->hProf2, TYPE_RGBA_16_SE,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合九色综合97婷婷女人| 在线观看欧美黄色| 国产午夜精品一区二区三区视频| 在线播放91灌醉迷j高跟美女| 欧美婷婷六月丁香综合色| 天堂影院一区二区| 亚洲欧美日韩国产一区二区三区| 亚洲国产精品久久久久秋霞影院| 青青青伊人色综合久久| 国产成人aaaa| 欧美亚洲综合一区| 精品久久久久香蕉网| 中文字幕精品一区| 亚洲一区二区免费视频| 久久99国产精品尤物| fc2成人免费人成在线观看播放 | 日韩午夜激情免费电影| 国产女主播在线一区二区| 亚洲免费视频中文字幕| 青青草国产精品亚洲专区无| 成人福利电影精品一区二区在线观看| 欧美私模裸体表演在线观看| 久久久精品黄色| 一区二区三区 在线观看视频| 久久av资源网| 91啪九色porn原创视频在线观看| 日韩视频一区二区三区| 自拍偷在线精品自拍偷无码专区| 免费久久精品视频| 91久久线看在观草草青青| 欧美精品一区二区精品网| 亚洲免费观看高清完整版在线| 久久国产综合精品| 欧美图片一区二区三区| 国产农村妇女毛片精品久久麻豆 | 日韩**一区毛片| 成人av资源网站| 在线观看av不卡| 欧美午夜电影网| 欧美激情在线一区二区三区| 婷婷久久综合九色综合伊人色| 久久99国产精品尤物| 99精品偷自拍| 欧美成人r级一区二区三区| 最新热久久免费视频| 青青草精品视频| 色哟哟一区二区| 久久午夜色播影院免费高清| 一区二区三区成人| 丝袜脚交一区二区| 一本色道久久加勒比精品| 精品福利一二区| 亚洲sss视频在线视频| 国产精品66部| 欧美性色欧美a在线播放| 久久久久久久av麻豆果冻| 丝袜亚洲另类丝袜在线| 99re这里只有精品6| 精品欧美久久久| 亚洲午夜一区二区| 久久成人免费网站| 色综合久久久久综合体桃花网| 欧美精品一区二区三区视频| 亚洲国产一区二区a毛片| 成人免费的视频| 欧美草草影院在线视频| 亚洲美女偷拍久久| 成人免费不卡视频| 久久婷婷国产综合国色天香| 天天免费综合色| 色伊人久久综合中文字幕| 中文字幕电影一区| 久久精品国产澳门| 欧美人与性动xxxx| 亚洲激情av在线| 成人午夜精品在线| 日韩欧美久久一区| 日韩精品亚洲专区| 欧美三级午夜理伦三级中视频| 日本一区二区三区四区在线视频| 精品一区二区在线免费观看| 91麻豆精品国产91久久久使用方法 | 国产精品黄色在线观看| 国产原创一区二区三区| 日韩小视频在线观看专区| 午夜天堂影视香蕉久久| 欧美丝袜丝交足nylons| 亚洲日本中文字幕区| 欧美三级日韩三级| 亚洲精品高清视频在线观看| 日韩av电影免费观看高清完整版 | 丁香另类激情小说| 欧美私模裸体表演在线观看| 欧美国产激情二区三区| 美美哒免费高清在线观看视频一区二区 | 国产激情一区二区三区| 久久免费精品国产久精品久久久久| 日本在线不卡视频| 日韩一级黄色大片| 午夜欧美一区二区三区在线播放| 色伊人久久综合中文字幕| 中文字幕中文在线不卡住| 国产专区欧美精品| 久久久噜噜噜久久人人看| 国产在线不卡一区| 亚洲精品在线一区二区| 欧美亚洲丝袜传媒另类| 亚洲欧美日韩成人高清在线一区| 99精品欧美一区二区三区小说| 国产精品嫩草久久久久| 99久久精品免费看| 亚洲综合在线五月| 精品视频一区 二区 三区| 亚洲精品免费在线观看| 欧美色综合影院| 日本不卡一区二区| 26uuu色噜噜精品一区| 国产福利不卡视频| 亚洲男人天堂一区| 欧美日韩在线亚洲一区蜜芽| 香蕉影视欧美成人| 精品毛片乱码1区2区3区| 国产成人av一区| 伊人色综合久久天天| 在线播放国产精品二区一二区四区 | 欧美吻胸吃奶大尺度电影 | 麻豆一区二区在线| 久久久午夜电影| 91麻豆免费观看| 亚洲欧美激情小说另类| 欧美高清视频一二三区 | 久久综合九色综合欧美98| 国产一区二区三区观看| 中文字幕不卡一区| 一区二区三区在线视频免费观看| 欧美精品久久久久久久久老牛影院| 久久国产生活片100| 国产精品视频在线看| 色悠悠亚洲一区二区| 欧美a级一区二区| 国产欧美视频一区二区三区| 色吊一区二区三区| 麻豆91在线看| 中文字幕av一区二区三区免费看 | 成人午夜视频网站| 亚洲高清不卡在线观看| 久久久久国产精品人| 色婷婷综合久色| 久久国产精品一区二区| 亚洲欧美日韩国产另类专区| 91精品国产综合久久婷婷香蕉| 国产成人在线看| 亚洲电影中文字幕在线观看| 久久免费午夜影院| 欧美日韩视频第一区| 懂色中文一区二区在线播放| 夜夜爽夜夜爽精品视频| 91精品国产91综合久久蜜臀| 成人avav影音| 久久成人免费网| 中文字幕在线不卡一区| 欧美人与z0zoxxxx视频| 成人h版在线观看| 丝袜a∨在线一区二区三区不卡| 精品捆绑美女sm三区| 91麻豆免费视频| 麻豆免费看一区二区三区| 一区二区三区四区高清精品免费观看| 精品国产精品网麻豆系列| 欧美视频一区二| 北岛玲一区二区三区四区| 激情五月播播久久久精品| 亚洲影院理伦片| 国产精品免费视频观看| 日韩一级黄色大片| 欧美日韩一区二区三区在线| 成人国产精品视频| 美腿丝袜亚洲三区| 亚洲欧美区自拍先锋| 久久久美女毛片| 欧美一级日韩免费不卡| 91麻豆国产精品久久| 国产乱对白刺激视频不卡| 免费成人小视频| 亚洲成人动漫av| 夜夜嗨av一区二区三区中文字幕| 久久久国产综合精品女国产盗摄| 欧美一区二区三区影视| 欧美综合一区二区三区| 97久久精品人人爽人人爽蜜臀| 另类人妖一区二区av| 亚洲一级在线观看| 一区二区三区四区在线播放| 综合欧美一区二区三区| 亚洲欧洲精品一区二区三区不卡| 欧美国产禁国产网站cc| 国产欧美日韩精品在线| 国产亚洲精品7777| 91丨九色丨国产丨porny| 日本欧美一区二区三区|