From f9885117b4e7698ad82ca546d91ed1b5973f77de Mon Sep 17 00:00:00 2001 From: jdc Date: Sun, 25 Dec 2011 07:57:59 +0100 Subject: [PATCH] New Output Profiles see #issue1166 --- rtdata/iccprofiles/output/RT_Medium_gsRGB.icc | Bin 0 -> 25584 bytes rtengine/simpleprocess.cc | 126 +++++++++++++++++- rtgui/options.cc | 2 +- 3 files changed, 122 insertions(+), 6 deletions(-) create mode 100644 rtdata/iccprofiles/output/RT_Medium_gsRGB.icc diff --git a/rtdata/iccprofiles/output/RT_Medium_gsRGB.icc b/rtdata/iccprofiles/output/RT_Medium_gsRGB.icc new file mode 100644 index 0000000000000000000000000000000000000000..fa3002c0f9ef2ff62d7ffc060ead2041183eebad GIT binary patch literal 25584 zcmeI5XHZm27^eH2$$1zUa?UyDoO1@rIU_lX0)hlZFp;w$K}ApjK~zM7q9Te23Mvv* z6ig^87;)#`yH)pY)mClQ*8bQZbEanIo$l}S>7K9q-&@ZIK=8-t;Fu&>5rCN35(p9}zk$k1$wj0rNd;9olEAFcYA4*y46 z{vG4$Y{H1~0YH!#{eQk4;J7I0zn!`1`!|>Brp#o;&uFB-=l|c?|EKf+h5T#Z|1-{K{lE7!#NPaGTOAbuheiO9 zzy56#XPg?UJOG0=|F)@C0MMum0HrcGB{B7%@ff%Mb!K3I1So(87{^210|pol!FRT393L1s0DSP9vlaapb4A+Eua;&fs^1AXa{FN z2j~Rnz%=NDvZ+L?AIp9Fl~j zAQ?ywl7|!_B}fHQgVZ5SNDI<|^dNo65Hf;HAT!7uvV^Q58^{iFfE*!b$Q9ZFxkH|i zH{=8PK><)86bywz;ZOv$6N-jnp*Sc3N`g|LG-wyJ8_IyPplm1y%7yZw{ZJuP1QkPv zp`%a&m)`YcTUDyCNf=ysE z*b=seZD9x433h?qU=P>}_J#f7AUFgLgCpT6I2MkF6X6s%4c-lBz*%q(oC_Dg2jC+3 z5PTFafy?1axCX9+kHbxH3)}{uhR?uf;q!10+z0o=SKzDg5Ih3kfN#O$@LhNkegHp& zXW=LCGk6hx4zIwk;WzMmcpct=zrtJa5BN6%AYcRvfkogEBm@<~il8Gn5j+Tfgb+dm zA&!tj$RZRFN(fbi20|O5hcHAKBg_z%2pfbw!U^Gua7TC|d=UPKAVer40uhCXMI<1S z5ow6sh)hH_A{SABC`1$^jvz`9<%lXoEusO@glIvWM6@G15$6#-h(5$6!~o(NViYlk zxQ&=VOd=j29wO!t^N2;nbHoZ_74a6aj@UqaMSMg2MEpU*NE8x_Bp@kB8j_CWMDij9 zkitlDq!dyXsen{Lsw1_KdPqa03DN>-jkH5LAzhIkNN=PcG6)%pj6_Bw_YY;`;i04A>=6XCUP8k4>^T=hAYUWjB0nHEkekTw$loXkg+yUdL=*+ZisC?Vqxez6C~=e&N)DxjQblQ^bWw&V zQ83@wG0Lo1=x(b{Nzv@zNoZH;z7yP)0C-e`Yx2s#2CjgCjBpwrQr=p1wb`XKr+ zx)fcBu0aw48Wi; zI1C9x!?0s`Faj7+j3h=5ql{6<=wJ*mrWi|%9mWachVjPuV?r5hVCKa;>vlo+x zDa0JYlwc|`wU|asE2bTD7Sn_2#|&VGF=LoJm`ThG<}qdg^BnUU^A7U~vx)hE`GZAb zaab~z70ZF;#R_4?u`*aitQuAutB*CoT4L?6&RBP>4>k}RhK<6;V^grZv3s$3*h1`K zY$>)1TaP_~J&EnWc47OlSFl6a8`yE|ee6T*6YL`PC3X$_0s9&I9lMP~;IKFnj)vpJ z@!^DV5;$3$GEM`hi!;Jm;B0YDI5(URE)W-ni^e73QgIo$99#je7I7Ya5y66BM{pr{68s6FgeXD+A&rnp z$R!jK4im}G2y29O!dJpiB1FUx$wW3HH&Ku% zPLw4o6Sas2L^Gld(TV6m^dp84cM{`?X~axoF0qh!lvqKmBQ_IH6VDNQi37wD;w|DN z@geak@i}poxK8{^{7HgISQ3RqC-IPkNs=T5k{U^uWK6OmIgs2)KBQn$Bq^ShO3EbV zk`9uNk}65{q!!W{QWvS8G)THZnjk$OJti%YUXk9DzL0*9Au^UsCez8hWMQ%tS&^(k z)+3veZOG1K53)Zwj2uHwChsQakPncLkSoabzvQKRTmOeoeACyEEfpAtrip`=hUD7ln_lw*`C%5h2?rIXT2 z8K8_(#wk;jIm!~{HRS{4E9DmzNhMHeR4%FzRg$VeRj2Ax&8W6iSE@HPh`N)SK;1>n zrtYU6rdCkvsV&qFY7g}ab%c7GIz^qME>T}o*QuM-Z59*@iG_`Ymqmm{hDDi0o5hI5 zip7z|gC&3^oF$GWl_iU%faMTNIZGW&3rhz}56cynQI>I*2P{ummRZ(VKCyhK0UDM@ zrE$^(Xc9C9ng-2)W=^xGxzYS+VYC=p3N4eCPdh{_r`6M1X&tl+v;o?6+5~NeHcxv= zdq?|1`^Ac6C9<-y^0JDu%Cf4m>av=$+OoQ``mlzuMzbcfX0qn99%3zLt!Hgz?PTp` z9b_G2y~p~9b%FIY>pJTe>mN1@8i%t(EO8TOZpswwr8|Y;$Z&Y-?(LdL6xm-bwGH57KYaC+TzaW%?R@gZ`5p$xdXav-7iyvn#M`vKz5mu{*PS zvxl(9u&1zRvF~R;%3jUh#NN){!#==%gZ&=+Ec+7sD*Gq)9~=k{A_tv=pF@H}kwc5a zn8Sv{mBW`Kj3bU?7e@}qL5@<6I*wM3vm6&WhB(GKra9(0RyaOzY;gikJSQtBFQ*u% zJf{Yy5vMh$3#SifC}$k!F3udzBF-|-dd@b^^PHDBM>r=qA95~mu5y0j{K19fB5|>E z335qssc`9XnR7XCd2j`BMRBEYWpN$gI>uGY)xvd_>mt`M*ErV<*E6oyT%Wjpa3i@% z+#K9O+|t~t+3yAg?s9Dz84TC9gBD4{sQ6JnwGaJl-R`)x6EToxB%$hk5VtKH^>CeZ%{OcbgB# z$I8dYC&8!8r^{!~=g8;H7s?mMx0^4I?=W9AUo&4PUq9an-vr+*-!k7jzD<6>PvEEX z3-U|ztMMD~Tl2f}`}0TgC-Z0V7xI_#H}Ie0@8Q47e~W*b{~7-({|5hW0jvN`fKNbD zKv_Ufz*4|jz*itbAWK)t{zfgXWDfm;I80t*6b0$&8S1#yCGf&zllf@*>W zg4TjN1Oo)41XBfb1d9bL1y2Ze3ib<*3f>i*6MP}~LGZf}N{A}NBP1@QB%~{3A>=IN zD-^c zY~do|O5qd2ox+!duM6K7ek%M*ctiNN2v&qmL_kDFL|w#K#7@LhBt#@$WRJ*xkrI&x zk<%i*B10k*BC{edL_Uc85Jii!i1LX_imHklirR>}iw29vitZLI5IrVZFM3+^g6NRw zgy@{;3(Rxy4tX)$#%V=;R%Pq9$31hGu9La}nOCb3SjOJdi>?u*Tft%`jS z2jWC=PH|CjMR8qmOL1560P$$?UE+D-N5$*JPmA}84~yRwe=NQt{z?3|1WtloLRdmx zLR-RI!bQSgB1$4nB3I(5M4iMbi3<|L5_csYOT3cUkl2AN9vGNjZ~Xd zkJOOVgw$iHS5g~Nf24`hoYG>_%F+hXHqsu_q0$M`S<*$)Rno1}UDAWncckZ}SEM(j zw`B-2oHAlE$}$ErwlbbFVKRv_du57cs%6?_dSr%V?#euoc`frr7Lp~)^2kccs>_Ui;T(Mk@ z+)23$awBq+a`SR;TL}@;&my^7rKD<=5o5 z6p#uu1px&)1#JaO1viCYg#?8xg<^#og_8=s3Zn}56&4iUDSTJNDAE;06crWq6>Sy0 z6vGu$6mu1iDIQnsP`s>oOYxE7OT`T(phQyQQIb;9P%=|;Q3_OwQ_55-QmR%usnn}9 zsx+mvsPtaxr!r2NLs?8&McGK%LD^S1N;zHmfO3U$i*mQ}kn%m{XUcDtzpG$W=qjQr z$|{B`_A0(AQ7Y*w`&BAbT2#7KhE*n2o~gW3`JswckC+77i4wM4ZXwWDecYMp8WYU65;)mGIu)luqf z>cZ+u>W1nL>b~mH>U-1=s#mF>RPR&2p+2qtT>X;<(4c7WYshKnXjp4_YD8$HX%uLb zYqV(eXpCq~X)I~1Yiw(hGgS`k{iwDxONXtiqfYF*cw)_ShBp$%zMwFR{mwDq;^wSBdtwKKGfv}?87 zwJ&Mk)}GT|)!x#<=&!|6N>A32I=p^an>Xhi5(CN|{)|t{-()pMfZ;GQ{A_^KlJc=+3W5F)q1D&`t@$< z&FQV`ebdM4bLva#YwBC-d+3Mjr|Iw4uhc)Oe^LLI{+#}*{x<`x0jGhafu@0_frmka z!7hVBgKC4*2A2$O8$336WAMWeZ^&&ZW2j?jW9V%dZJ1$LY*=sDX?WG}uHk~=2g5%` z6e9s6MI%EaN25Ta1fzXMB}UCgJx14!W{g&hz8a&A*^MQPHH)x6O5%M>eZA-)#xDe6|XDxKl1=%Ir71&kTwcA~_o3vZD`)rT0=d_o$*R{8|53o|JecM zz~Lb6pzGk^5a^KPP~cGIaK_=P!=%G=hcAv8M=nQMM}0>p$6&`)#{-VFj%OW*9H$*u z9KSi?o%oy-os6A!I7K+^b~@zL=+y0W!)eaxjni*usj&rGVoAV{- z3Fk%U4Hu*fhl{j}o{OVPuuG~-p-Y|1IhPTahc2rwKV8YLLawT=7Oq~dF|OIJrLJwR zms}@Y7hON^K=0t%A-lt1hx3lG9qBuYcO2i*y<=?0;~npI{BdJ-6L-^cvvmt_OL8l4 zt8wde8*-a*d+qkqo$M~;uI6s(?&BWkp6g!W-tKFwhk@15se<=x>uix@y>Lco->0|2?=#%18 z=u_|0<#WU5vCn&7*q7Z`+E?G#**DC0kM9xRX5Wjx6TVBnU;J=>e11xPW`16Nv3|LJ zm40XZhWuvyR{ehav-peqYx_I+2m9~xFZOTp@AV(|U-17NfC=CYPz*2&@C=9z$PK6r z=m;1Jco^^|U^|dCP%=R%lu1>CnN@>Cm;%?J(9b$uRvem#~PitgzCsQ(=Q)(_w32 z+u^L?QsMgHuHlj4d&A4Z+rzJgKMa2p0V3!TG7*LmZV^!tIT4i+9T6iDvk~tj5s{pc z@{y*Io{@2p`H?k|=Of1==OaJu#O&nTsj|~*r{B)xod^V?uaBWu)CDAG|ATcfRaAIrXmBa^$Ye^u9BS|jFG|4+DF{v=AG3jE`y`+_-pUJdjsbs@s z_vF~*{N%dip5*c5<>YTEloW{+{gfRk(J8qpH7Q*ww^9~Uwo=KdVyU{RE~!ze`%T}<6fBc+L@>881)MWyXat4`}myOp+>wzZ4AOMI8!F4tYryK;Bc?&{t(zH52c z_jGEyWV%7RdwOhoL3%@aZ~EQzm+8NDv+b7IZL-^YcjE4YyHD)Cw0mmz+8$^R=N`p9 zmU{yBr0qGf=j5JiduI21$UtZCXQ*e`XM|;BWmIIG%^1sgmhm-{lqr^}m$@S|CNn>? zKC?ITZsx1Z?JV{z`7HA+zpT`(!&z-v*Rp1_*7sue3hdR`>$o>!Z}#4*y0jl--g&ko_?GeGV#zKSw>sAtyX1JEtn=e9rBh<(wb;Sog{7Gu`L2 zFJ<4MeQo;&_s#D6n2XI7%GJ(w&W*~=%dN}p&ApfVD)&zwXP#1?RbEiup1iWW&b%9W z3wc}l)O@LY<9zS@r2OLi*8IWz+5C?MxB}qW#M-R3i96k8#;ARoENUF%B$fqc^=t$A&qLHHcqRnDTu~e~1 zu}^Vo@sZ-w#iPaZ#hZtyholdg9P&MscIeol_CwbXEgbrGn08p^u-Re%!|8`h4|g8E zd3fpYk0WeHRoX{mo{dTCkd+0t93 zFG_!xah55U*_DNt?JKJ*yI3|=_O2XVE>x~l?pB^qUR2&zK2-j+e6xaDAyZ*q5m2$G zqN3t_#hr>*l~5&5rFx}PWpw5K%BISJ%Gt_|DpHkXl}VLv)vl`2s?&sW$Vrpth{G+O~^r(`_G5 z5>HB=G&>o1GV5f`$%`kaPp+RLo{~Ieb}H~x)~T9P7f;Qc`godjTI#g<>7dhlPuHF9 zKmG9ZMmxD(rrokVq&=s-q5VqxZ2OlpENA4;Sf2?$lXs@+%;1@)XSO=nI+Qx>JEA%c zbhLJibS!rK>g4KF?{w*m?>yAm-g&e06)&l#Qb zJC|{;`dr_+>2n{?lh4bXw>%$qKKFd%`N8u~&wuM;?^5YN?dm*7c$r>gMm( z?e^?W>n`i=?w;&^--GXw>@n*J?#bzC=o#pF+_QCoenI(y2#2-%se5 z>bK|*?a%8!(LdC`(EsZa_a)6sZkJLnm0s$)Geb4op>zA)TzW(h7#|@1eZZ}eHl-;;+WBSI%7;Q{x%yBG!?8w-;v3q0hZ<21x z-n6|Lb+hPZ`_1v2YqxN>ByU;X3ct1gR@<$yTd!`TZj0SEy&ZBp?{@R;(c3S^;c?+{ zg`$hIaz)WZ!ALbM4OJoj(%-69yCh6MH9)Ph6W=ocMEB;I6@4 z|GRtd9>06-?&94)_XO@4-1EP;_ulb)L-&>@!KC1%;bg#M&ScZ%@Z|D+_`dLcob%Y#TloWgqf0=o|);HFAwPt)gHP%OnX@Mu>axXhd&yN3Al^#1kPJUeexbN}o<8M#6 zo@hVuevYoihTUvk?L>5dJ!WQ-~oL(4Tc(+JeR9JLcOk6Bm>|2~&{JzAqq`Ty|l)con zG`h61j9HdkwqA~2KD>N>d20FdbNX|Q=bq2^Jg4!-Dkaqq>) zm$a9vFWp}5dRhDO>dVCyXhmejY$bf9aHV7A-pa>Uv{$OH++U@?s(p3!)zWMDwdiZ} z*O9M_UU$B}|9WGUzN)e6xtg)susXc@Vhyz>xn{iydu?WI>kaoC-8cSka^AGO z8GEz#miSiwt<&4&w-s+My`6u%{Z8ne>AUcEh3`7vO}^WBPk*oR-s^ql`^NX9?_Yhu zeUSNJ{~_T+*@ufCo_zSdF1T*89=2Y%-myNpzVVU%QS+ns$E=ShKHm7a`ibyK{*%+E zlgJeUSBf5G<~`L zW%VoJtHM|3uc=?Fzh3>iw29o5*tFS<+br4a+kCS5drN4`Y%5}`cr z^z-E}>@V40j=xfVRsXvBYxy_ox72UD--*8~eqa8*unliZY};(dZI^BLZ_ob$f5iS+ z{fYTg@~7|5(?5ThUI3;SfawKbdI6YT0Hzm!=>=eV0hnF@rWb(e1z>ssm|g&;7l7#n zV0r=eV0hnF@rWb(e1z>ssm|g&;7l7#nV0rCKrIo1z>Ukm|OrR7l6qHU~&PNTmU8)fXM}5asilJ z045iJ$pv6?0hn9>CKrIo1z>Ukm|OrR7l6qH`2Uy-@OKRgMs)zhUnK&XX8~~C1Ay8n z0KJU2co?IOfKPJhE=D~H0PN!!g&pG46C=YTk_G=$j6zWEe^dB@5&v&Zg1_$m=lUOh C+#N9h literal 0 HcmV?d00001 diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index a05da33a7..d896649b9 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -29,10 +29,11 @@ #include "rawimagesource.h" #include "../rtgui/ppversion.h" #undef THREAD_PRIORITY_NORMAL - #define CLIP(a) ((a)>0?((a)<65535?(a):65535):0) + + namespace rtengine { extern const Settings* settings; @@ -247,8 +248,24 @@ IImage16* processImage (ProcessingJob* pjob, int& errorCode, ProgressListener* p bool useLCMS; if(params.icm.gamma != "default" || params.icm.freegamma) { // if select gamma output between BT709, sRGB, linear, low, high, 2.2 , 1.8 - double ga0,ga1,ga2,ga3,ga4,ga5,ga6; - readyImg = ipf.lab2rgb16b (labView, cx, cy, cw, ch, params.icm.output, params.icm.working, params.icm.gamma, params.icm.freegamma, params.icm.gampos, params.icm.slpos, ga0,ga1,ga2,ga3,ga4,ga5,ga6 ); + cmsMLU *DescriptionMLU, *CopyrightMLU, *DmndMLU, *DmddMLU;// for modification TAG + + cmsToneCurve* GammaTRC[3]; + cmsFloat64Number Parameters[7]; + double ga0,ga1,ga2,ga3,ga4,ga5,ga6; + // wchar_t string[80] ; + const wchar_t* stri[]= {L" RT_Large ", L" RT_Medium",L" RT_sRGB ",L" WideGamut",L" Beta RGB ",L" BestRGB ",L" BruceRGB"};//label for Free gamma and Output Gamma + int ns;//numero of stri[] + if (params.icm.working=="ProPhoto") ns=0; + else if (params.icm.working=="Adobe RGB") ns=1; + else if (params.icm.working=="sRGB") ns=2; + else if (params.icm.working=="WideGamut") ns=3; + else if (params.icm.working=="Beta RGB") ns=4; + else if (params.icm.working=="BestRGB") ns=5; + else if (params.icm.working=="BruceRGB") ns=6; + + + readyImg = ipf.lab2rgb16b (labView, cx, cy, cw, ch, params.icm.output, params.icm.working, params.icm.gamma, params.icm.freegamma, params.icm.gampos, params.icm.slpos, ga0,ga1,ga2,ga3,ga4,ga5,ga6 ); customGamma = true; //or selected Free gamma @@ -306,8 +323,6 @@ IImage16* processImage (ProcessingJob* pjob, int& errorCode, ProgressListener* p if (settings->verbose) printf("\"%s\" ICC output profile not found!\n", outProfile.c_str()); } else { - cmsToneCurve* GammaTRC[3]; - cmsFloat64Number Parameters[7]; Parameters[0] = ga0; Parameters[1] = ga1; Parameters[2] = ga2; @@ -316,11 +331,112 @@ IImage16* processImage (ProcessingJob* pjob, int& errorCode, ProgressListener* p Parameters[5] = ga5; Parameters[6] = ga6; // 7 parameters for smoother curves + //change desc Tag , to "free gamma", or "BT709", etc. + cmsContext ContextID = cmsGetProfileContextID(jprof);//modification TAG + DescriptionMLU = cmsMLUalloc(ContextID, 1); + CopyrightMLU = cmsMLUalloc(ContextID, 1);//for ICC + DmndMLU=cmsMLUalloc(ContextID, 1);//for ICC + DmddMLU=cmsMLUalloc(ContextID, 1);// for ICC + + + + // instruction with //ICC are used for generate icc profile + if (DescriptionMLU == NULL) printf("Error Description\n"); + cmsMLUsetWide(CopyrightMLU, "en", "US", L"No copyright Rawtherapee -Prophoto compatible") ;//adapt to profil + cmsMLUsetWide(DmndMLU, "en", "US", L"Rawtherapee") ; + cmsMLUsetWide(DmddMLU, "en", "US", L"RTLarge") ; //adapt to profil + //display Tag desc with : selection of gamma and Primaries + if(params.icm.gamma=="High_g1.3_s3.35" && !params.icm.freegamma) { + wchar_t string1[80] = L"GammaTRC: High g1.3 s3.35"; + wcsncat( string1, stri[ns], 37 ); + cmsMLUsetWide(DescriptionMLU, "en", "US", string1); + } + else if (params.icm.gamma=="Low_g2.6_s6.9" && !params.icm.freegamma) { + wchar_t string2[80] = L"GammaTRC: Low g2.6 s6.9"; + wcsncat( string2, stri[ns], 36 ); + cmsMLUsetWide(DescriptionMLU, "en", "US", string2); + } + else if (params.icm.gamma=="sRGB_g2.4_s12.92" && !params.icm.freegamma) { + wchar_t string3[80] = L"GammaTRC: sRGB g2.4 s12.92"; + wcsncat( string3, stri[ns], 37 ); + cmsMLUsetWide(DescriptionMLU, "en", "US", string3); + } + else if (params.icm.gamma== "BT709_g2.2_s4.5" && !params.icm.freegamma) { + wchar_t string4[80] = L"GammaTRC: BT709 g2.2 s4.5"; + wcsncat( string4, stri[ns], 36 ); + cmsMLUsetWide(DescriptionMLU, "en", "US", string4); + } + else if (params.icm.gamma== "linear_g1.0" && !params.icm.freegamma) { + wchar_t string5[80] = L"GammaTRC: Linear g1.0"; + wcsncat( string5, stri[ns], 32 ); + cmsMLUsetWide(DescriptionMLU, "en", "US", string5); + } + else if (params.icm.gamma== "standard_g2.2" && !params.icm.freegamma) { + wchar_t string6[80] = L"GammaTRC: g2.2"; + wcsncat( string6, stri[ns], 30 ); + cmsMLUsetWide(DescriptionMLU, "en", "US", string6); + } + else if (params.icm.gamma== "standard_g1.8" && !params.icm.freegamma) { + wchar_t string7[80] = L"GammaTRC: g1.8"; + wcsncat( string7, stri[ns], 30 ); + cmsMLUsetWide(DescriptionMLU, "en", "US", string7); + } + + //for elaboration ICC profiles + // else if (params.icm.gamma== "sRGB_g2.4_s12.92" && !params.icm.freegamma) cmsMLUsetWide(DescriptionMLU, "en", "US", L"RT_Medium gamma sRGB(AdobeRGB compatible)"); + // else if (params.icm.gamma== "BT709_g2.2_s4.5" && !params.icm.freegamma) cmsMLUsetWide(DescriptionMLU, "en", "US", L"RT_sRGB gamma BT709(IEC61966 equivalent)"); + // else if (params.icm.gamma== "sRGB_g2.4_s12.92" && !params.icm.freegamma) cmsMLUsetWide(DescriptionMLU, "en", "US", L"RT_sRGB gamma sRGB(IEC61966 equivalent)"); + // else if (params.icm.gamma== "linear_g1.0" && !params.icm.freegamma) cmsMLUsetWide(DescriptionMLU, "en", "US", L"RT_sRGB gamma Linear1.0(IEC61966 equivalent)"); + // else if (params.icm.gamma== "BT709_g2.2_s4.5" && !params.icm.freegamma) cmsMLUsetWide(DescriptionMLU, "en", "US", L"RT_Large gamma BT709(Prophoto compatible)"); + // else if (params.icm.gamma== "sRGB_g2.4_s12.92" && !params.icm.freegamma) cmsMLUsetWide(DescriptionMLU, "en", "US", L"RT_Large gamma sRGB(Prophoto compatible)"); + // else if (params.icm.gamma== "linear_g1.0" && !params.icm.freegamma) cmsMLUsetWide(DescriptionMLU, "en", "US", L"RT_Large gamma Linear1.0(Prophoto compatible)"); + + else if (params.icm.freegamma) {//prepare wchar_t for Free Gamma + std::wostringstream sgamm; + float gamm = params.icm.gampos;//gamma + sgamm< buf( cga , cga + (ws.size() + 1) ); + wchar_t* wp = &buf[0]; + wchar_t wpr[5]=L"2222"; + wcsncpy(wpr,wp,4); //gamma (gampos==> string) + wchar_t string[80] = L"Free Gamma g="; + + wchar_t mid[5]=L" s="; + wcsncat( string, wpr, 17 ); + wcsncat( string, mid, 20 ); + + std::wostringstream slp;//slope + float slop = params.icm.slpos; + slp< buf2( cslo , cslo + (ws2.size() + 1) ); + wchar_t* wp2 = &buf2[0]; // wchar_t* + wchar_t wpr2[6]=L"22222"; + wcsncpy(wpr2,wp2,5); //Slope (slope==> string) + + wcsncat( string, wpr2, 23 ); + wcsncat( string, stri[ns], 33 ); + cmsMLUsetWide(DescriptionMLU, "en", "US", string);}//display description with gamma + slope + primaries + + cmsWriteTag(jprof, cmsSigProfileDescriptionTag, DescriptionMLU);//desc changed + //cmsWriteTag(jprof, cmsSigCopyrightTag, CopyrightMLU); + //cmsWriteTag(jprof, cmsSigDeviceMfgDescTag, DmndMLU); + //cmsWriteTag(jprof, cmsSigDeviceModelDescTag, DmddMLU); + // Calculate output profile's rTRC bTRC gTRC GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(NULL, 5, Parameters); cmsWriteTag(jprof, cmsSigGreenTRCTag, (void*)GammaTRC[1] ); cmsWriteTag(jprof, cmsSigRedTRCTag, (void*)GammaTRC[0] ); cmsWriteTag(jprof, cmsSigBlueTRCTag, (void*)GammaTRC[2] ); + //for generation ICC profiles : here Prophoto ==> Large + // if(params.icm.gamma== "BT709_g2.2_s4.5") cmsSaveProfileToFile(jprof, "RT_Large_gBT709.icc"); + // else if (params.icm.gamma== "sRGB_g2.4_s12.92") cmsSaveProfileToFile(jprof, "RT_Large_gsRGB.icc"); + // else if (params.icm.gamma== "linear_g1.0") cmsSaveProfileToFile(jprof, "RT_Large_g10.icc"); + + } } } diff --git a/rtgui/options.cc b/rtgui/options.cc index a0fb040af..f96514457 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -235,7 +235,7 @@ void Options::setDefaults () { rtSettings.monitorProfile = ""; rtSettings.autoMonitorProfile = false; rtSettings.LCMSSafeMode = true; - rtSettings.adobe = "RT_Middle_gsRGB"; // put the name of yours profiles (here windows) + rtSettings.adobe = "RT_Medium_gsRGB"; // put the name of yours profiles (here windows) rtSettings.prophoto = "RT_Large_gBT709"; // these names appear in the menu "output profile" rtSettings.prophoto10 = "RT_Large_g10"; // these names appear in the menu "output profile" rtSettings.srgb10 = "RT_sRGB_g10";