⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icc2ps.c

📁 Linux下的无线网卡通用驱动程序
💻 C
字号:
////  Little cms//  Copyright (C) 1998-2003 Marti Maria//// Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the Software // is furnished to do so, subject to the following conditions://// The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software.//// THIS SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,// EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY// WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.//// IN NO EVENT SHALL MARTI MARIA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,// INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,// OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,// WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF// LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE// OF THIS SOFTWARE.//// Version 1.12#include "lcms.h"#include <stdarg.h>// xgetopt() interface -----------------------------------------------------extern int   xoptind;extern char *xoptarg;extern int   xopterr;extern char  SW;int    cdecl xgetopt(int argc, char *argv[], char *optionS);// ------------------------------------------------------------------------static char *cInProf = NULL;static char *cOutProf = NULL;static int Intent = INTENT_PERCEPTUAL;static FILE* OutFile;static int BlackPointCompensation = FALSE;static int Undecorated = FALSE;staticvoid FatalError(const char *frm, ...){       va_list args;       va_start(args, frm);       vfprintf(stderr, frm, args);       va_end(args);       exit(1);}// The toggles stuffstaticvoid HandleSwitches(int argc, char *argv[]){       int s;             while ((s = xgetopt(argc,argv,"uUbBI:i:O:o:T:t:")) != EOF) {       switch (s){	        case 'i':       case 'I':            cInProf = xoptarg;            break;       case 'o':       case 'O':           cOutProf = xoptarg;            break;       case 'b':       case 'B': BlackPointCompensation =TRUE;            break;       case 't':       case 'T':            Intent = atoi(xoptarg);            if (Intent > 3) Intent = 3;            if (Intent < 0) Intent = 0;            break;            case 'U':       case 'u':            Undecorated = TRUE;            break;  default:       FatalError("Unknown option - run without args to see valid ones.\n");    }           }}staticvoid Help(void){                  fprintf(stderr, "usage: icc2ps [flags]\n\n");     fprintf(stderr, "flags:\n\n");          fprintf(stderr, "%ci<profile> - Input profile: Generates Color Space Array (CSA)\n", SW);     fprintf(stderr, "%co<profile> - Output profile: Generates Color Rendering Dictionary(CRD)\n", SW);             fprintf(stderr, "%ct<0,1,2,3> - Intent (0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute)\n", SW);                   fprintf(stderr, "%cb - Black point compensation (CRD only)\n", SW);         fprintf(stderr, "%cu - Do NOT generate resource name on CRD\n", SW);    	 fprintf(stderr, "\n");     fprintf(stderr, "This program is intended to be a demo of the little cms\n"                     "engine. Both lcms and this program are freeware. You can\n"                     "obtain both in source code at http://www.littlecms.com\n"                     "For suggestions, comments, bug reports etc. send mail to\n"                     "marti@littlecms.com\n\n");     exit(0);}staticvoid GenerateCSA(void){	cmsHPROFILE hProfile = cmsOpenProfileFromFile(cInProf, "r");	size_t n;	char* Buffer;	n = cmsGetPostScriptCSA(hProfile, Intent, NULL, 0);	if (n == 0) return;	Buffer = (char*) malloc(n + 1);	cmsGetPostScriptCSA(hProfile, Intent, Buffer, n);	Buffer[n] = 0;	fprintf(OutFile, "%s", Buffer);			free(Buffer);	cmsCloseProfile(hProfile);}staticvoid GenerateCRD(void){	cmsHPROFILE hProfile = cmsOpenProfileFromFile(cOutProf, "r");	size_t n;	char* Buffer;    DWORD dwFlags = 0;        if (BlackPointCompensation) dwFlags |= cmsFLAGS_BLACKPOINTCOMPENSATION;    if (Undecorated)            dwFlags |= cmsFLAGS_NODEFAULTRESOURCEDEF;	n = cmsGetPostScriptCRDEx(hProfile, Intent, dwFlags, NULL, 0);	if (n == 0) return;	Buffer = (char*) malloc(n + 1);    cmsGetPostScriptCRDEx(hProfile, Intent, dwFlags, Buffer, n);	Buffer[n] = 0;	fprintf(OutFile, "%s", Buffer);				free(Buffer);	cmsCloseProfile(hProfile);}staticint MyErrorHandler(int ErrorCode, const char *ErrorText){    FatalError("icc2ps: %s", ErrorText);    return 0;}int main(int argc, char *argv[]){	int nargs;     fprintf(stderr, "little cms PostScript converter - v1.4\n\n");	 HandleSwitches(argc, argv);     cmsSetErrorHandler(MyErrorHandler);     nargs = (argc - xoptind);	 if (nargs != 0 && nargs != 1)				Help();            		 if (nargs == 0) 			OutFile = stdout;	 else			OutFile = fopen(argv[xoptind], "wt");	   			 if (cInProf == NULL && cOutProf == NULL)				Help();    	  if (cInProf != NULL)			GenerateCSA();		  	  if (cOutProf != NULL)			GenerateCRD();			  if (nargs == 1) {		  fclose(OutFile);	  }      return 0;     }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -