[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