<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aubanel</id>
	<title>Inkscape Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aubanel"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/Special:Contributions/Aubanel"/>
	<updated>2026-11-05T18:18:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=24484</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=24484"/>
		<updated>2008-03-13T19:29:35Z</updated>

		<summary type="html">&lt;p&gt;Aubanel: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47=&lt;br /&gt;
&#039;&#039;&#039;(not released yet)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display - johan]&lt;br /&gt;
* on-canvas mask/clip edit - johan&lt;br /&gt;
* snapping has been improved (more details in the snapping paragraph)&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
Added 4 preset buttons for dip, pen, brush and reed in the toolbox. Clicking one button sets the calligraphic tool with the matching presets.&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
&lt;br /&gt;
[sketch, von koch, ...]&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new &#039;&#039;&#039;Text &amp;gt; Convert to Braille&#039;&#039;&#039; extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
==Native File Dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[johan]&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels. &lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The &#039;&#039;&#039;node tool&#039;&#039;&#039; now snaps to any unselected node (cusp or smooth) within the path that&#039;s being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes.&lt;br /&gt;
* The object snapper now also allows to snap to the &#039;&#039;&#039;page border&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Aubanel</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=SpecIccForCairo&amp;diff=21964</id>
		<title>SpecIccForCairo</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=SpecIccForCairo&amp;diff=21964"/>
		<updated>2008-02-27T13:56:09Z</updated>

		<summary type="html">&lt;p&gt;Aubanel: /* Functional spec */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why ==&lt;br /&gt;
In order for inkscape to produce CMYK PDFs and PSs with cairo, Cairo needs to support ICC. This is an intent to propose a Cairo API that would be suitable with inkscape needs.&lt;br /&gt;
&lt;br /&gt;
== Profiles ==&lt;br /&gt;
A set of profiles will apply to the whole Cairo surface. &lt;br /&gt;
Cairo needs to be able to compute a transform from this set.&lt;br /&gt;
We can get inspiration from the lcms api [http://www.littlecms.com/LCMSAPI.TXT], in particular the cmsCreateMultiprofileTransform (more generic than cmsCreateTransform that handles only a single pair of color profiles).&lt;br /&gt;
&lt;br /&gt;
So a proposal would be:&lt;br /&gt;
&lt;br /&gt;
 typedef enum cairo_color_intent {&lt;br /&gt;
   CAIRO_COLOR_INTENT_PERCEPTUAL,&lt;br /&gt;
   CAIRO_COLOR_INTENT_RELATIVE_COLORIMETRIC,&lt;br /&gt;
   CAIRO_COLOR_INTENT_SATURATION,&lt;br /&gt;
   CAIRO_COLOR_INTENT_ABSOLUTE_COLORIMETRIC&lt;br /&gt;
 } cairo_color_intent_t;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct cairo_color_profile cairo_color_profile_t;&lt;br /&gt;
&lt;br /&gt;
 void cairo_surface_set_color_profile_srgb(cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_surface_set_color_profile(cairo_surface_t *surf,&lt;br /&gt;
                                 cairo_color_profile_t *profile);&lt;br /&gt;
 &lt;br /&gt;
 cairo_color_profile_t *&lt;br /&gt;
 cairo_surface_get_color_profile(cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_surface_add_profile_mapping(cairo_surface_t *surf, &lt;br /&gt;
                                   cairo_color_profile_t *in, &lt;br /&gt;
                                   cairo_color_profile_t *out);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_surface_remove_profile_mappings(cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_surface_set_color_intent(cairo_surface_t *surf,&lt;br /&gt;
                                cairo_color_intent_t intent);&lt;br /&gt;
 &lt;br /&gt;
 cairo_color_intent_t&lt;br /&gt;
 cairo_surface_get_color_intent(cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_set_source_icc_color(cairo_t *cr,&lt;br /&gt;
                            cairo_color_profile_t *profile,&lt;br /&gt;
                            const double *components,&lt;br /&gt;
                            int num_components);&lt;br /&gt;
&lt;br /&gt;
Color transformations would be performed when painting from a pattern&lt;br /&gt;
to a surface, based on the surface&#039;s profile, mappings, intent, etc.&lt;br /&gt;
&lt;br /&gt;
== Functional spec ==&lt;br /&gt;
Cairo has several ways to accept color information (e.g. cairo_set_source_rgb). The cairo back-end produces an output (a file or calls to third party libraries). The colors of this output are only back-end and cairo dependent, and there is no way for the cairo user to specify something different.&lt;br /&gt;
&lt;br /&gt;
A color management system provides a way to specify input and output color formats (bit orders, meaning of the channels, etc) as well as a way to transform input colors to output ones.&lt;br /&gt;
&lt;br /&gt;
Cairo needs a ways to permit cairo users to input this information (basically, those would be stored alongside the surface).&lt;br /&gt;
&lt;br /&gt;
As the format for inputing colors is variable, a color is defined as an array of doubles (size to be specified at each time, each double is a channel). Cairo stores these informations internally.&lt;br /&gt;
&lt;br /&gt;
At render time, the backend computes the color transformation (typically a call to cmsCreateTransform ) and applies it to every color. Back-end will also use the color output format as a clue to the desired output (e.g. the pdf backend with color output format TYPE_CMYK_8 will generate a CMYK pdf). Each cairo backend will be able to render only some of the output color formats (e.g. X backend does not know how to render CMYK, but would know ho to render RGBA 32, RGB 24). Trying to render to an unsupported color format would trigger an error.&lt;br /&gt;
&lt;br /&gt;
== Open issues ==&lt;br /&gt;
&lt;br /&gt;
=== Should surface profile/color rendering changes be allowed once the surface is being actively used? ===&lt;br /&gt;
&lt;br /&gt;
:Why should we allow this ? Is there any use case ? The ones I can see are: render the same surface with two different profiles at the same time (e.g. on a multihead screen with different profiles, but is&#039;nt X already handling that, batch export of the same file in many different colorspaces)&lt;br /&gt;
&lt;br /&gt;
=== How should gradients work in this regime? ===&lt;br /&gt;
:What is the issue here ? like we have a set_source_icc_color, we can have a set_stop_icc color, isnt&#039;it ?&lt;br /&gt;
=== How should &#039;&#039;&#039;cairo_color_profile_t&#039;&#039;&#039;s be created/loaded?===&lt;br /&gt;
&lt;br /&gt;
:lcms provides 2 ways, load from a file or from memory. I think cairo should provide the same ways, I dont see an additional one that could bring some benefit here, appart from direct reuse of a lcms handler for applications already using lcms like inkscape but that&#039;s not really clean - makes cairo API depend from lcms API.&lt;/div&gt;</summary>
		<author><name>Aubanel</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=SpecIccForCairo&amp;diff=21954</id>
		<title>SpecIccForCairo</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=SpecIccForCairo&amp;diff=21954"/>
		<updated>2008-02-27T13:35:44Z</updated>

		<summary type="html">&lt;p&gt;Aubanel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why ==&lt;br /&gt;
In order for inkscape to produce CMYK PDFs and PSs with cairo, Cairo needs to support ICC. This is an intent to propose a Cairo API that would be suitable with inkscape needs.&lt;br /&gt;
&lt;br /&gt;
== Profiles ==&lt;br /&gt;
A set of profiles will apply to the whole Cairo surface. &lt;br /&gt;
Cairo needs to be able to compute a transform from this set.&lt;br /&gt;
We can get inspiration from the lcms api [http://www.littlecms.com/LCMSAPI.TXT], in particular the cmsCreateMultiprofileTransform (more generic than cmsCreateTransform that handles only a single pair of color profiles).&lt;br /&gt;
&lt;br /&gt;
So a proposal would be:&lt;br /&gt;
&lt;br /&gt;
 typedef enum cairo_color_intent {&lt;br /&gt;
   CAIRO_COLOR_INTENT_PERCEPTUAL,&lt;br /&gt;
   CAIRO_COLOR_INTENT_RELATIVE_COLORIMETRIC,&lt;br /&gt;
   CAIRO_COLOR_INTENT_SATURATION,&lt;br /&gt;
   CAIRO_COLOR_INTENT_ABSOLUTE_COLORIMETRIC&lt;br /&gt;
 } cairo_color_intent_t;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct cairo_color_profile cairo_color_profile_t;&lt;br /&gt;
&lt;br /&gt;
 void cairo_surface_set_color_profile_srgb(cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_surface_set_color_profile(cairo_surface_t *surf,&lt;br /&gt;
                                 cairo_color_profile_t *profile);&lt;br /&gt;
 &lt;br /&gt;
 cairo_color_profile_t *&lt;br /&gt;
 cairo_surface_get_color_profile(cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_surface_add_profile_mapping(cairo_surface_t *surf, &lt;br /&gt;
                                   cairo_color_profile_t *in, &lt;br /&gt;
                                   cairo_color_profile_t *out);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_surface_remove_profile_mappings(cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_surface_set_color_intent(cairo_surface_t *surf,&lt;br /&gt;
                                cairo_color_intent_t intent);&lt;br /&gt;
 &lt;br /&gt;
 cairo_color_intent_t&lt;br /&gt;
 cairo_surface_get_color_intent(cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_set_source_icc_color(cairo_t *cr,&lt;br /&gt;
                            cairo_color_profile_t *profile,&lt;br /&gt;
                            const double *components,&lt;br /&gt;
                            int num_components);&lt;br /&gt;
&lt;br /&gt;
Color transformations would be performed when painting from a pattern&lt;br /&gt;
to a surface, based on the surface&#039;s profile, mappings, intent, etc.&lt;br /&gt;
&lt;br /&gt;
== Functional spec ==&lt;br /&gt;
To render a surface, cairo has several ways to accept color information (e.g. cairo_set_source_rgb). &lt;br /&gt;
&lt;br /&gt;
== Open issues ==&lt;br /&gt;
&lt;br /&gt;
=== Should surface profile/color rendering changes be allowed once the surface is being actively used? ===&lt;br /&gt;
&lt;br /&gt;
:Why should we allow this ? Is there any use case ? The ones I can see are: render the same surface with two different profiles at the same time (e.g. on a multihead screen with different profiles, but is&#039;nt X already handling that, batch export of the same file in many different colorspaces)&lt;br /&gt;
&lt;br /&gt;
=== How should gradients work in this regime? ===&lt;br /&gt;
:What is the issue here ? like we have a set_source_icc_color, we can have a set_stop_icc color, isnt&#039;it ?&lt;br /&gt;
=== How should &#039;&#039;&#039;cairo_color_profile_t&#039;&#039;&#039;s be created/loaded?===&lt;br /&gt;
&lt;br /&gt;
:lcms provides 2 ways, load from a file or from memory. I think cairo should provide the same ways, I dont see an additional one that could bring some benefit here, appart from direct reuse of a lcms handler for applications already using lcms like inkscape but that&#039;s not really clean - makes cairo API depend from lcms API.&lt;/div&gt;</summary>
		<author><name>Aubanel</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=SpecIccForCairo&amp;diff=21824</id>
		<title>SpecIccForCairo</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=SpecIccForCairo&amp;diff=21824"/>
		<updated>2008-02-26T16:35:31Z</updated>

		<summary type="html">&lt;p&gt;Aubanel: /* Open issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why ==&lt;br /&gt;
In order for inkscape to produce CMYK PDFs and PSs with cairo, Cairo needs to support ICC. This is an intent to propose a Cairo API that would be suitable with inkscape needs.&lt;br /&gt;
&lt;br /&gt;
== Profiles ==&lt;br /&gt;
A set of profiles will apply to the whole Cairo surface. &lt;br /&gt;
Cairo needs to be able to compute a transform from this set.&lt;br /&gt;
We can get inspiration from the lcms api [http://www.littlecms.com/LCMSAPI.TXT], in particular the cmsCreateMultiprofileTransform (more generic than cmsCreateTransform that handles only a single pair of color profiles).&lt;br /&gt;
&lt;br /&gt;
So a proposal would be:&lt;br /&gt;
&lt;br /&gt;
 typedef enum cairo_color_intent {&lt;br /&gt;
   CAIRO_COLOR_INTENT_PERCEPTUAL,&lt;br /&gt;
   CAIRO_COLOR_INTENT_RELATIVE_COLORIMETRIC,&lt;br /&gt;
   CAIRO_COLOR_INTENT_SATURATION,&lt;br /&gt;
   CAIRO_COLOR_INTENT_ABSOLUTE_COLORIMETRIC&lt;br /&gt;
 } cairo_color_intent_t;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct cairo_color_profile cairo_color_profile_t;&lt;br /&gt;
&lt;br /&gt;
 void cairo_surface_set_color_profile_srgb(cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_surface_set_color_profile(cairo_surface_t *surf,&lt;br /&gt;
                                 cairo_color_profile_t *profile);&lt;br /&gt;
 &lt;br /&gt;
 cairo_color_profile_t *&lt;br /&gt;
 cairo_surface_get_color_profile(cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_surface_add_profile_mapping(cairo_surface_t *surf, &lt;br /&gt;
                                   cairo_color_profile_t *in, &lt;br /&gt;
                                   cairo_color_profile_t *out);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_surface_remove_profile_mappings(cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_surface_set_color_intent(cairo_surface_t *surf,&lt;br /&gt;
                                cairo_color_intent_t intent);&lt;br /&gt;
 &lt;br /&gt;
 cairo_color_intent_t&lt;br /&gt;
 cairo_surface_get_color_intent(cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 cairo_set_source_icc_color(cairo_t *cr,&lt;br /&gt;
                            cairo_color_profile_t *profile,&lt;br /&gt;
                            const double *components,&lt;br /&gt;
                            int num_components);&lt;br /&gt;
&lt;br /&gt;
Color transformations would be performed when painting from a pattern&lt;br /&gt;
to a surface, based on the surface&#039;s profile, mappings, intent, etc.&lt;br /&gt;
&lt;br /&gt;
== Open issues ==&lt;br /&gt;
&lt;br /&gt;
=== Should surface profile/color rendering changes be allowed once the surface is being actively used? ===&lt;br /&gt;
&lt;br /&gt;
:Why should we allow this ? Is there any use case ? The ones I can see are: render the same surface with two different profiles at the same time (e.g. on a multihead screen with different profiles, but is&#039;nt X already handling that, batch export of the same file in many different colorspaces)&lt;br /&gt;
&lt;br /&gt;
=== How should gradients work in this regime? ===&lt;br /&gt;
:What is the issue here ? like we have a set_source_icc_color, we can have a set_stop_icc color, isnt&#039;it ?&lt;br /&gt;
=== How should &#039;&#039;&#039;cairo_color_profile_t&#039;&#039;&#039;s be created/loaded?===&lt;br /&gt;
&lt;br /&gt;
:lcms provides 2 ways, load from a file or from memory. I think cairo should provide the same ways, I dont see an additional one that could bring some benefit here, appart from direct reuse of a lcms handler for applications already using lcms like inkscape but that&#039;s not really clean - makes cairo API depend from lcms API.&lt;/div&gt;</summary>
		<author><name>Aubanel</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=SpecIccForCairo&amp;diff=21124</id>
		<title>SpecIccForCairo</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=SpecIccForCairo&amp;diff=21124"/>
		<updated>2008-02-22T19:25:19Z</updated>

		<summary type="html">&lt;p&gt;Aubanel: /* Colors */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why ==&lt;br /&gt;
In order for inkscape to produce CMYK PDFs and PSs with cairo, Cairo needs to support ICC. This is an intent to propose a Cairo API that would be suitable with inkscape needs.&lt;br /&gt;
&lt;br /&gt;
== Profiles ==&lt;br /&gt;
A set of profiles will apply to the whole Cairo surface. &lt;br /&gt;
Cairo needs to be able to compute a transform from this set.&lt;br /&gt;
We can get inspiration from the lcms api [http://www.littlecms.com/LCMSAPI.TXT], in particular the cmsCreateMultiprofileTransform (more generic than cmsCreateTransform that handles only a pair of color profiles).&lt;br /&gt;
&lt;br /&gt;
So a proposal would be:&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
 DWORD :size;&lt;br /&gt;
 void *:data;&lt;br /&gt;
 } cairo_color_profile_t&lt;br /&gt;
 &lt;br /&gt;
 void cairo_surface_add_profile_pair (cairo_surface_t *surf, &lt;br /&gt;
                                     cairo_color_profile_t in, &lt;br /&gt;
                                     cairo_color_profile_t out);&lt;br /&gt;
 &lt;br /&gt;
 void cairo_surface_remove_profiles (cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void cairo_surface_set_transformation (cairo_surface_t *surf, &lt;br /&gt;
                                       DWORD input_format,                 &lt;br /&gt;
                                       DWORD output_format, &lt;br /&gt;
                                       int intent, &lt;br /&gt;
                                       DWORD flags)&lt;br /&gt;
&lt;br /&gt;
Profiles and transformation must be set &#039;&#039;&#039;before&#039;&#039;&#039; any call to a cairo function using a color.&lt;br /&gt;
== Colors==&lt;br /&gt;
All the functions handling colors, like cairo_set_source_rgba and cairo_set_source_rgb, must be complemented (or replaced) with &lt;br /&gt;
 void cairo_set_source_profiled_color  (cairo_t *cr, void* color);&lt;br /&gt;
format of the color is the one defined by DWORD input_format.&lt;/div&gt;</summary>
		<author><name>Aubanel</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=SpecIccForCairo&amp;diff=21114</id>
		<title>SpecIccForCairo</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=SpecIccForCairo&amp;diff=21114"/>
		<updated>2008-02-22T19:24:44Z</updated>

		<summary type="html">&lt;p&gt;Aubanel: /* Profiles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why ==&lt;br /&gt;
In order for inkscape to produce CMYK PDFs and PSs with cairo, Cairo needs to support ICC. This is an intent to propose a Cairo API that would be suitable with inkscape needs.&lt;br /&gt;
&lt;br /&gt;
== Profiles ==&lt;br /&gt;
A set of profiles will apply to the whole Cairo surface. &lt;br /&gt;
Cairo needs to be able to compute a transform from this set.&lt;br /&gt;
We can get inspiration from the lcms api [http://www.littlecms.com/LCMSAPI.TXT], in particular the cmsCreateMultiprofileTransform (more generic than cmsCreateTransform that handles only a pair of color profiles).&lt;br /&gt;
&lt;br /&gt;
So a proposal would be:&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
 DWORD :size;&lt;br /&gt;
 void *:data;&lt;br /&gt;
 } cairo_color_profile_t&lt;br /&gt;
 &lt;br /&gt;
 void cairo_surface_add_profile_pair (cairo_surface_t *surf, &lt;br /&gt;
                                     cairo_color_profile_t in, &lt;br /&gt;
                                     cairo_color_profile_t out);&lt;br /&gt;
 &lt;br /&gt;
 void cairo_surface_remove_profiles (cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void cairo_surface_set_transformation (cairo_surface_t *surf, &lt;br /&gt;
                                       DWORD input_format,                 &lt;br /&gt;
                                       DWORD output_format, &lt;br /&gt;
                                       int intent, &lt;br /&gt;
                                       DWORD flags)&lt;br /&gt;
&lt;br /&gt;
Profiles and transformation must be set &#039;&#039;&#039;before&#039;&#039;&#039; any call to a cairo function using a color.&lt;br /&gt;
== Colors==&lt;br /&gt;
All the functions handling colors, like cairo_set_source_rgba and cairo_set_source_rgb, must be complemented (or replaced) with &lt;br /&gt;
 void cairo_set_source_profileded_color  (cairo_t *cr, void* color);&lt;br /&gt;
format of the color is the one defined by DWORD input_format.&lt;/div&gt;</summary>
		<author><name>Aubanel</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=SpecIccForCairo&amp;diff=21104</id>
		<title>SpecIccForCairo</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=SpecIccForCairo&amp;diff=21104"/>
		<updated>2008-02-22T19:17:02Z</updated>

		<summary type="html">&lt;p&gt;Aubanel: New page: == Why == In order for inkscape to produce CMYK PDFs and PSs with cairo, Cairo needs to support ICC. This is an intent to propose a Cairo API that would be suitable with inkscape needs.  =...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why ==&lt;br /&gt;
In order for inkscape to produce CMYK PDFs and PSs with cairo, Cairo needs to support ICC. This is an intent to propose a Cairo API that would be suitable with inkscape needs.&lt;br /&gt;
&lt;br /&gt;
== Profiles ==&lt;br /&gt;
A set of profiles will apply to the whole Cairo surface. &lt;br /&gt;
Cairo needs to be able to compute a transform from this set.&lt;br /&gt;
We can get inspiration from the lcms api [http://www.littlecms.com/LCMSAPI.TXT], in particular the cmsCreateMultiprofileTransform (more generic than cmsCreateTransform that handles only a pair of color profiles).&lt;br /&gt;
&lt;br /&gt;
So a proposal would be:&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
 DWORD :size;&lt;br /&gt;
 void *:data;&lt;br /&gt;
 } cairo_color_profile_t&lt;br /&gt;
 &lt;br /&gt;
 void cairo_surface_add_profile_pair (cairo_surface_t *surf, &lt;br /&gt;
                                     cairo_color_profile_t in, &lt;br /&gt;
                                     cairo_color_profile_t out);&lt;br /&gt;
 &lt;br /&gt;
 void cairo_surface_remove_profiles (cairo_surface_t *surf);&lt;br /&gt;
 &lt;br /&gt;
 void cairo_surface_set_transformation (cairo_surface_t *surf, &lt;br /&gt;
                                       DWORD input_format,                 &lt;br /&gt;
                                       DWORD output_format, &lt;br /&gt;
                                       int intent, &lt;br /&gt;
                                       DWORD flags)&lt;br /&gt;
&lt;br /&gt;
Profiles and transformation must be set &#039;&#039;&#039;before&#039;&#039;&#039; any call to a cairo function using a color.&lt;br /&gt;
&lt;br /&gt;
All the functions handling colors, like cairo_set_source_rgba and cairo_set_source_rgb, must be complemented (or replaced) with &lt;br /&gt;
 void cairo_set_source_profileded_color  (cairo_t *cr, void* color);&lt;br /&gt;
format of the color is the one defined by DWORD input_format.&lt;/div&gt;</summary>
		<author><name>Aubanel</name></author>
	</entry>
</feed>