[scribus] Scripting expert needed to speed up colour palette conversion
"Christoph Schäfer"
christoph-schaefer at gmx.de
Sun Apr 7 06:02:05 UTC 2013
Hi José,
Thanks for your effort. Do you think yould also create an extended version of the script that allows for conversion of every Scribus-style import of non-spot colours (e.g. "FromWMF#b8bbab") to something meaningful, so the previously mentioned letter-hex combination becomes "R184/G187/B171"? Such a script would be well worth including in 1.4.3 and 1.5.0.
Required funtions:
- Remove "From[Filetype -- see list of supported formats in the File > Open and File > Import > Get Vector File]".
- Determine the colour space via length of the hex value
- Replace the hex value with decimal values and colour channels divided by slashes: R5/G116/B20, C5/M30/Y40/K10
Cheers,
Christoph
> Gesendet: Dienstag, 02. April 2013 um 02:26 Uhr
> Von: "José Antonio Rocha" <joseantoniorocha at gmail.com>
> An: "Scribus User Mailing List" <scribus at lists.scribus.net>
> Betreff: Re: [scribus] Scripting expert needed to speed up colour palette conversion
>
> The whole thing (do the job with SVG imported colors too):
>
> #!/usr/bin/env python
> # -*- coding: utf-8 -*-
>
> import sys
>
> try:
> import scribus
> except ImportError,err:
> print "This Python script is written for the Scribus scripting
> interface."
> print "It can only be run from within Scribus."
> sys.exit(1)
>
> #########################
> # YOUR IMPORTS GO HERE #
> #########################
>
> def main(argv):
> """Translate imported RGB colors to CMYK colors."""
> #########################
> # YOUR CODE GOES HERE #
> #########################
> if scribus.haveDoc():
> clrs = scribus.getColorNames()
> newname = ""
> for clr in clrs:
> if clr.find("From") == 0:
> cmyk = scribus.getColor(clr)
> c = cmyk[0]
> cd = cmyk[0]*100/255
> ca = "c"+str(cd)
> m = cmyk[1]
> md = cmyk[1]*100/255
> ma = "m"+str(md)
> y = cmyk[2]
> yd = cmyk[2]*100/255
> ya = "y"+str(yd)
> k = cmyk[3]
> kd = cmyk[3]*100/255
> ka = "k"+str(kd)
> newname = ca+ma+ya+ka
> scribus.defineColor(newname,c,m,y,k)
> scribus.replaceColor(clr,newname)
> scribus.deleteColor(clr,newname)
>
> def main_wrapper(argv):
> """The main_wrapper() function."""
> try:
> scribus.statusMessage("Running script...")
> scribus.progressReset()
> main(argv)
> finally:
> if scribus.haveDoc():
> scribus.setRedraw(True)
> scribus.statusMessage("")
> scribus.progressReset()
>
> if __name__ == '__main__':
> main_wrapper(sys.argv)
>
>
> 2013/4/1 José Antonio Rocha <joseantoniorocha at gmail.com>
>
> > Unbelievably easy:
> >
> > clrs = getColorNames()
> > newname = ""
> > for clr in clrs:
> > if clr.find("FromPDF") == 0:
> > cmyk = getColor(clr)
> > c = cmyk[0]
> > cd = cmyk[0]*100/255
> > ca = "c"+str(cd)
> > m = cmyk[1]
> > md = cmyk[1]*100/255
> > ma = "m"+str(md)
> > y = cmyk[2]
> > yd = cmyk[2]*100/255
> > ya = "y"+str(yd)
> > k = cmyk[3]
> > kd = cmyk[3]*100/255
> > ka = "k"+str(kd)
> > newname = ca+ma+ya+ka
> > defineColor(newname,c,m,y,k)
> > replaceColor(clr,newname)
> > deleteColor(clr,newname)
> >
> >
> >
> > 2013/3/31 "Christoph Schäfer" <christoph-schaefer at gmx.de>
> >
> >> Hi all,
> >>
> >> I have brought on board another commercial colour vendor, this time one
> >> from North America. At the moment, we are feverishly working on all sorts
> >> of issues, including documentation, colour correctness, logo exchange,
> >> licensing etc.
> >>
> >> You could help to speed up the process by writing a shell or Python
> >> script.
> >>
> >> I receive all palettes as EPS files, which are easy to convert to
> >> Scribus's own XML palette format. However, since the colours aren't stored
> >> as spot colours, they end up being imported as something like
> >> "FromPDF#00000040", which is completely useless when referring to a printed
> >> colour swatch that is based on CMYK ink mixtures.
> >>
> >> In a Scribus XML palette file, the converted colour entry looks like this:
> >>
> >> <COLOR NAME="FromPDF#00404040" CMYK="#00404040"/>
> >>
> >> What is needed is a script that strips the string FromPDF and converts
> >> the hex value in a specific way (adding ink channel abbreviations and
> >> slashes), so that the end result looks like this:
> >>
> >> <COLOR NAME="C25/M25/Y25/K25" CMYK="#40404040"/>
> >>
> >> Anyone willing to step in?
> >>
> >>
> >> Thanks in advance and Happy Easter,
> >>
> >> Christoph
> >>
> >> ___
> >> Scribus Mailing List: scribus at lists.scribus.net
> >> Edit your options or unsubscribe:
> >> http://lists.scribus.net/mailman/listinfo/scribus
> >> See also:
> >> http://wiki.scribus.net
> >> http://forums.scribus.net
> >>
> >
> >
> >
> > --
> > [image: Meira]
> > ------------------------------
> > nome: "José Antonio Meira da Rocha"
> > googletalk: email: MSN: joseantoniorocha at gmail.com
> > veículo: [ http://meiradarocha.jor.br ]
> > fones: 55-8411-3047 / 55-3744-2994
> > ------------------------------
> >
>
>
>
> --
> [image: Meira]
> ------------------------------
> nome: "José Antonio Meira da Rocha"
> googletalk: email: MSN: joseantoniorocha at gmail.com
> veículo: [ http://meiradarocha.jor.br ]
> fones: 55-8411-3047 / 55-3744-2994
> ------------------------------
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://lists.scribus.net/pipermail/scribus/attachments/20130401/6f7a24e8/attachment.html>
> ___
> Scribus Mailing List: scribus at lists.scribus.net
> Edit your options or unsubscribe:
> http://lists.scribus.net/mailman/listinfo/scribus
> See also:
> http://wiki.scribus.net
> http://forums.scribus.net
>
More information about the scribus
mailing list