<?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-05-01T08:23:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</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;
'''(not released yet)'''&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 '''Text &amp;gt; Convert to Braille''' 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 '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that'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 '''page border'''&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'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'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'it ?&lt;br /&gt;
=== How should '''cairo_color_profile_t'''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'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'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'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'it ?&lt;br /&gt;
=== How should '''cairo_color_profile_t'''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'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'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'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'it ?&lt;br /&gt;
=== How should '''cairo_color_profile_t'''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'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 '''before''' 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 '''before''' 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 '''before''' 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>