Patch: Many composite/blend modes mostly compatible to Adobe Photoshop (c)
David REVOY
davidrevoy at gmail.com
Sat Jan 29 10:41:34 CET 2011
Hi,
Just to react on this :
> and "Color" modes work exactly as in Photoshop
Just to inform the way 'color mode' works in Gimp 2.6 is superior to the
'color mode' of Photoshop ( till Cs2 for sure ).
This can be tested & seen with comparing the same file open like this :
http://www.davidrevoy.com/XYZ/color-mode_test_GIMP-net.jpg
http://www.davidrevoy.com/XYZ/color-mode_test_TOSHOP-net.jpg
useless to say that Gimp color mode is far superior for artist than
Photoshop. I understand the photoshop one should be proposed for
compatibility, but for efficiency ; please don't omit one like Gimp. I
couldn't try it with Krita , btw*
The PSD file if you need to test ( this file can be considered as
'public domain' if you need it ) :
http://www.davidrevoy.com/XYZ/color-mode_test.psd.zip
;-)
-David
( PS : can't compile since Git or install 2.3 threw PPA , as i'm Lucid
Lynx LTS user not Maverick ...so I wait kubuntu backport to post the bin
for Lucid 64bit )
On 01/28/2011 10:52 PM, Sven Langkamp wrote:
> On Wed, Jan 12, 2011 at 11:17 PM, Silvio Heinrich <plassy at web.de
> <mailto:plassy at web.de>> wrote:
>
> Phew... I think I've gone a bit mad with the blending modes :D.
> I added a few. When counting everything together there should be
> nearly 40 compositing modes now.
> All modes should trait partly transparent layers as Photoshop is
> doing it and all modes should
> respect the channel flags.
> But there are two problems with this patch:
>
> 1. I used a pretty generic approach. So it relies on the compiler
> to do proper inlining. And i didn't use the optimized multiply
> functions. I had a few problems with those functions, because it
> seems the give no correct results but approximations. So I still
> need to check out which composite modes will work with the
> optimized functions. I just want to say that it could be that this
> is a bit/much slower then the current implementation (i don't know
> how much time you spend in optimizing this).
> I personally haven't noticed any speed impact but I've got a 3GHz
> quad core, so i think i will be the last
> who will notice this.
>
> 2. The "Hue" and "Saturation" modes are not working correctly but
> the "Luminosity" and "Color" modes work exactly as in Photoshop. I
> coded the algorithms after the ISO 3200-1 spec. Adobe released the
> texts they gave to the ISO committee for specification. You can
> find them here:
> http://www.adobe.com/devnet/pdf.html
> http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf
> (direct link)
>
> go to the category "Transparency" -> "Basic Composition
> Computations". This spec is of course for PDFs but it seems that
> Photoshop uses the same formulas.
> Since "Luminosity" and "Color" modes are working i think i made
> some mistake in implementing the
> "setSat" function (on page 327). Maybe someone else has an
> enlightenment, because I'm working in the dark right now :D.
>
> But apart from this two problems everything else should work fine
> (hopefully).
>
>
>
> I tried to build the branch but I get this error:
> Linking CXX shared library ../../lib/libpigmentcms.so
> CMakeFiles/pigmentcms.dir/colorspaces/KoLabColorSpace.o: In function
> `unsigned short cfVividLight<unsigned short>(unsigned short, unsigned
> short)':
> KoLabColorSpace.cpp:(.text._Z12cfVividLightItET_S0_S0_[unsigned short
> cfVividLight<unsigned short>(unsigned short, unsigned short)]+0x31):
> undefined reference to `KoColorSpaceMathsTraits<unsigned
> short>::unitValue'
> KoLabColorSpace.cpp:(.text._Z12cfVividLightItET_S0_S0_[unsigned short
> cfVividLight<unsigned short>(unsigned short, unsigned short)]+0x3d):
> undefined reference to `KoColorSpaceMathsTraits<unsigned
> short>::zeroValue'
> KoLabColorSpace.cpp:(.text._Z12cfVividLightItET_S0_S0_[unsigned short
> cfVividLight<unsigned short>(unsigned short, unsigned short)]+0xb3):
> undefined reference to `KoColorSpaceMathsTraits<unsigned
> short>::zeroValue'
> KoLabColorSpace.cpp:(.text._Z12cfVividLightItET_S0_S0_[unsigned short
> cfVividLight<unsigned short>(unsigned short, unsigned short)]+0xbf):
> undefined reference to `KoColorSpaceMathsTraits<unsigned
> short>::unitValue'
> CMakeFiles/pigmentcms.dir/colorspaces/KoLabColorSpace.o: In function
> `unsigned short cfDivide<unsigned short>(unsigned short, unsigned short)':
> KoLabColorSpace.cpp:(.text._Z8cfDivideItET_S0_S0_[unsigned short
> cfDivide<unsigned short>(unsigned short, unsigned short)]+0x25):
> undefined reference to `KoColorSpaceMathsTraits<unsigned
> short>::zeroValue'
> KoLabColorSpace.cpp:(.text._Z8cfDivideItET_S0_S0_[unsigned short
> cfDivide<unsigned short>(unsigned short, unsigned short)]+0x31):
> undefined reference to `KoColorSpaceMathsTraits<unsigned
> short>::unitValue'
> CMakeFiles/pigmentcms.dir/colorspaces/KoLabColorSpace.o: In function
> `unsigned short cfArcTangent<unsigned short>(unsigned short, unsigned
> short)':
> KoLabColorSpace.cpp:(.text._Z12cfArcTangentItET_S0_S0_[unsigned short
> cfArcTangent<unsigned short>(unsigned short, unsigned short)]+0x25):
> undefined reference to `KoColorSpaceMathsTraits<unsigned
> short>::zeroValue'
> KoLabColorSpace.cpp:(.text._Z12cfArcTangentItET_S0_S0_[unsigned short
> cfArcTangent<unsigned short>(unsigned short, unsigned short)]+0x31):
> undefined reference to `KoColorSpaceMathsTraits<unsigned
> short>::unitValue'
> CMakeFiles/pigmentcms.dir/colorspaces/KoRgbU8ColorSpace.o: In function
> `unsigned char cfVividLight<unsigned char>(unsigned char, unsigned char)':
> KoRgbU8ColorSpace.cpp:(.text._Z12cfVividLightIhET_S0_S0_[unsigned char
> cfVividLight<unsigned char>(unsigned char, unsigned char)]+0x27):
> undefined reference to `KoColorSpaceMathsTraits<unsigned char>::unitValue'
> KoRgbU8ColorSpace.cpp:(.text._Z12cfVividLightIhET_S0_S0_[unsigned char
> cfVividLight<unsigned char>(unsigned char, unsigned char)]+0x33):
> undefined reference to `KoColorSpaceMathsTraits<unsigned char>::zeroValue'
> KoRgbU8ColorSpace.cpp:(.text._Z12cfVividLightIhET_S0_S0_[unsigned char
> cfVividLight<unsigned char>(unsigned char, unsigned char)]+0x97):
> undefined reference to `KoColorSpaceMathsTraits<unsigned char>::zeroValue'
> KoRgbU8ColorSpace.cpp:(.text._Z12cfVividLightIhET_S0_S0_[unsigned char
> cfVividLight<unsigned char>(unsigned char, unsigned char)]+0xa3):
> undefined reference to `KoColorSpaceMathsTraits<unsigned char>::unitValue'
> CMakeFiles/pigmentcms.dir/colorspaces/KoRgbU8ColorSpace.o: In function
> `unsigned char cfDivide<unsigned char>(unsigned char, unsigned char)':
> KoRgbU8ColorSpace.cpp:(.text._Z8cfDivideIhET_S0_S0_[unsigned char
> cfDivide<unsigned char>(unsigned char, unsigned char)]+0x21):
> undefined reference to `KoColorSpaceMathsTraits<unsigned char>::zeroValue'
> KoRgbU8ColorSpace.cpp:(.text._Z8cfDivideIhET_S0_S0_[unsigned char
> cfDivide<unsigned char>(unsigned char, unsigned char)]+0x2d):
> undefined reference to `KoColorSpaceMathsTraits<unsigned char>::unitValue'
> CMakeFiles/pigmentcms.dir/colorspaces/KoRgbU8ColorSpace.o: In function
> `unsigned char cfArcTangent<unsigned char>(unsigned char, unsigned char)':
> KoRgbU8ColorSpace.cpp:(.text._Z12cfArcTangentIhET_S0_S0_[unsigned char
> cfArcTangent<unsigned char>(unsigned char, unsigned char)]+0x21):
> undefined reference to `KoColorSpaceMathsTraits<unsigned char>::zeroValue'
> KoRgbU8ColorSpace.cpp:(.text._Z12cfArcTangentIhET_S0_S0_[unsigned char
> cfArcTangent<unsigned char>(unsigned char, unsigned char)]+0x2d):
> undefined reference to `KoColorSpaceMathsTraits<unsigned char>::unitValue'
> collect2: ld returned 1 exit status
> make[2]: *** [lib/libpigmentcms.so.8.0.0] Fehler 1
> make[1]: *** [libs/pigment/CMakeFiles/pigmentcms.dir/all] Fehler 2
> make: *** [all] Fehler 2
>
>
> _______________________________________________
> kimageshop mailing list
> kimageshop at kde.org
> https://mail.kde.org/mailman/listinfo/kimageshop
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kimageshop/attachments/20110129/76a113cf/attachment.htm
More information about the kimageshop
mailing list