download pdf file from folder in c# : Remove metadata from pdf online Library SDK class wpf azure ajax showfoto12-part17

The Showfoto Handbook
3.2.6 The Working Space So I told Showfoto where to find my monitor profile and I have a camera profile that
Iapplied to the image file produced by my raw processing software. What’s the next
step in color management?
You need to choose aworking color space so youcan edit your image. LCMS will transform your
image fromyour cameracolor space to your chosen working space, via the PCSspecified by your
camera color profile. Why cannot I just edit my images in the color space described by the camera profile?
After all, the camera profile should provide the best ´´fit´´ to the colors recorded by my camera,
as processed by my raw processing procedure, right? Wikipedia says, ´´Working spaces, such
as sRGB or Adobe RGB, are color spaces that facilitate good results while editing. For instance,
pixels with equal values of RGB should appear neutral.´´ ´´[P]ixels with equal values of RGB
should appear neutral´´ just means that for any given pixel in an image that has been converted
to a suitable working space, if R=G=B you should see grey or black or white on your screen.
Many camera profiles violate this ´´neutral´´ condition. I am not aware of a list of other technical
requirements for a suitable working space. However, I can think of another good reasonwhy you
wouldn’t want to edit your image in your camera profile color space. If you look at the size of a
typical camera profile, it is on the order of aquarter to a half a megabyte or more. It’sgot a lot of
information about all the changes that need to be made at different regions of color and tonality
in the original scene, to get accurate color rendition from the RGB values that come out of the
raw processor. The camera profile is accurate (at least for colors in the original target) but not
particularly mathematically smooth. Working space color profiles, on the other hand, are very
small in size (half a kilobyte instead of half a megabyte) because they describe a color gamut
in terms of smooth, continuous mathematical functions. Working space profiles don’t need to
make allowances for the ´´messiness´´ of real world sensors, so the mathematical manipulations
performed during image editing will go much more smoothly and accurately than if you try to
edit your image while it is still in the camera color space. Which working spaceshould I choose?
Everyone has an opinion. I’m just going to lay out some of the bits of information needed to
make an informed choice. Working space profiles are characterized by:
1. Gamma (or other transfer function), which dictates how much the original linear intensity
values captured by the camera sensor (and subjected to the in-camera A-to-D conversion,
then interpolated by the raw processing program to produce the image file) are altered to
make editing easier or more precise.
2. RGB primarieswhichdictate the range of colors, that is, the color gamut, coveredby agiven
3. White point (usually D50 or D65 though other values may be used), which specifies the
color temperature of the white point of the working space. What gamma should my working space have?
The gamma of acolor profile dictates what power transform needs to take place to properly con-
vert from an image’s embedded color profile (perhaps your working color space or your camera
color profile) to another color profile with adifferent gamma, suchasyour chosenworking space,
or the display profile used to display the image on the screen or perhaps from one working space
to another, or perhaps from your working space to your printer’s color space. Dcraw outputs
Remove metadata from pdf online - add, remove, update PDF metadata in, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# Developers to Read, Add, Edit, Update and Delete PDF Metadata
analyze pdf metadata; batch pdf metadata editor
Remove metadata from pdf online - VB.NET PDF metadata library: add, remove, update PDF metadata in, ASP.NET, MVC, Ajax, WinForms, WPF
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
modify pdf metadata; remove metadata from pdf file
The Showfoto Handbook
a16-bit image with a linear gamma, which means that a histogram of the resulting image file
shows the actual amount of light that each pixel on the camera sensor captured during the expo-
sure (paraphrasingthispage). (Which is why at present applying a camera profile to the dcraw
output also requires applying an appropriate gamma transform to get to the desired working
space, unless the camera profile also uses gamma=1.)
One practical consequence of the gamma of a working space is that the higher the gamma, the
more discrete tones are available for editing in the shadows, with consequently fewer tonesavail-
able in the highlights. Changing the gamma of an image redistributes the number of tones avail-
able in the lighter and darker areas of an image. Theoretically, if you are working on a very
dark-toned (low key) image you might want a working space with a higher gamma. And if you
are working on a high key image, say a picture taken in full noon sunlight of a wedding dress
with snow as a backdrop, you might want to choose a working space with a lower gamma, so
you have more available tonal gradations in the highlights.
Theory aside, in the real world of real image editing, almost everyone uses working spaces with
either a gamma of either 1.8 or 2.2. sRGB and L*-RGB are two notable exceptions.
sRGB uses a transfer function close to that of a CRT (and thus not necessarily relevant to im-
age editing or to display on an LCD). As Wikipedia notes, ´´Unlike most other RGB color spaces
the sRGB gamma can not be expressed as a single numerical value. The overall gamma is ap-
proximately 2.2, consisting of a linear (gamma 1.0) section near black, and a non-linear section
elsewhere involving a 2.4 exponent and a gamma (slope of log output versus log input) chang-
ing from 1.0 through about 2.3´´ (cited fromthispage), which makes for some complicated math
during image processing.
L*-RGB uses as its transfer function the same perceptually uniform transfer function as the
CIELab color space. ´´When storing colors in limited precision values´´ using a perceptually uni-
form transfer function ´´can improve the reproduction of tones´´ (cited fromthispage ).
In addition to gamma=1.8 and gamma=2.2, the only other gamma for a working space that gets
much mention or use is linear gamma, or gamma=1.0. As noted above, dcraw outputs linear
gamma files if you ask for 16-bit output. Linear gamma is used in HDR (high dynamic range)
imaging and also if one wants to avoid introducing gamma-induced errors into one’sregular low
dynamic range editing.
´´Gamma-induced errors´´ is a topic outside the scope of this tutorial. But see ´´Gamma errors in
picture scaling´´ (cited fromthispage ) for gamma-induced tonality shifts; and of course see Timo
Autiokari’s informative (albeit somewhat infamous) website for a whole-hearted endorsement
of using linear gamma working spaces (Timo’s website seems to be down at present, though
archived copies of his articles are still available through google). Bruce Lindbloom mentions
acommonly-encountered gamma-induced error that is caused by incorrectly calculating lumi-
nance in a nonlinear RGB working space (seethispage, sidenote 1). And in a similar vein, the
calculations involved in mixing colors together to produce new colors (such as using a digital
filter to add warmth to an image) result in gamma errors unless the new colors are calculated by
first transforming all the relevant values back to their linear values.
Unfortunately and despite their undeniable mathematical advantages, linear gamma working
spaceshave so few tones in the shadowsthat (in my opinion) they are impossible to use for edit-
ing if one is working in 8-bits, and still problematic at 16-bits. When the day comes when we are
all doing our editing on 32-bit files produced by our HDR cameras on our personal supercom-
puters, I predict that we will all be using working spaces with gamma=1. Adobe Lightroom is
already using a linear gamma working space ´´under the hood´´, CS2 allows the option of using
linear gammafor mixing colors, and Lightzone has always used a linear gamma working space. How many discrete tonal steps are there in a digital image?
In an 8-bit image, you have 256 tonal steps from solid black to solid white. In a 16-bit image
theoretically you have 65536 steps. But remember, those 16-bits started out as either 10 bits
(=1024 steps), 12 bits (=4096 steps), or 14 bits (=16384 steps) as produced by the camera’s A-to-D
converter - the extra bits to reach 16-bits start out as just padding. The available tones are not
VB.NET PDF remove image library: remove, delete images from PDF in
Image: Insert Image to PDF. Image: Remove Image from PDF Page. Image Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process.
change pdf metadata creation date; pdf metadata viewer
VB.NET PDF Page Delete Library: remove PDF pages in, ASP.
Ability to remove consecutive pages from PDF file in VB Enable specified pages deleting from PDF in Visual Basic Online source codes for quick evaluation in VB
view pdf metadata in explorer; edit pdf metadata online
The Showfoto Handbook
distributed evenly from light to dark. In linear gamma mode (as the camera sensor sees things),
there’s a whole lot more tones in the highlights than in the shadows. Hence the advice, if you
shoot raw, to ´´expose to the right but don’t blow the highlights´´. See Ron Bigelow’sarticleson
´´why raw´´,forafulldiscussionofthedistributionofavailabletonesinarawimage. Should I use a large-gamut or a small-gamut working space?
One major consideration in choosing a working space is that some working spaces are bigger
than others, meaning they cover more of the visible spectrum (and as a consequence include
some imaginary colors - mathematical constructs that don’t really exist). These bigger spaces
offer the advantage of allowing you to keep allthe colors captured by your cameraandpreserved
by the LCMS conversion from your camera profile to the super-wide-gamut profile connection
space and out again to your chosen working space.
But keeping all the possible colors comes at a price, as explained below. And it seems that any
given digital image likely only contains a small subset of all the possible visible colors that your
cameraiscapable of capturing. Thissmall subset is easily contained in one of the smaller working
spaces(anexceptionrequiring alarger color gamut wouldbe apicture of ahighly saturated object
such as yellow daffodil).
Using avery large working space meansthat editing your image (applying curves, increasing sat-
uration, etc) can easily produce colorsthat your eventual output device (printer, monitor) simply
cannot reproduce (you cannot see these colors while you’re editing, either). So the conversion
from your working space to your output device space (say your printer) will have to remap the
out-of-gamut colors in your edited image, some of whichmight evenbe totally imaginary, to your
printer color space with its much smaller color gamut. This remapping process will lead to inac-
curate colorsand loss of saturation at best. Evenworse, the remapping caneasily lead to banding
(posterization - gaps in what should be a smooth color transition, say, across an expanse of blue
sky) and clipping (e.g your carefully crafted muted transitions across delicate shades of red, for
example, might get remapped to a solid block of dull red after conversion to your printer’scolor
space). Also, the experts say that 8-bit images just don’t have enough tones to stretch across a
wide gamut working space without banding and lossof saturation, evenbefore conversion to an
output space. So if you choose a large gamut working space, make sure you start with a 16-bit
To summarize, large gamut working spaces, improperly handled, can lead to lost information
on output. Small gamut working spaces can clip information on input. Medium-sized gamut
working spaces try to strike a happy medium. Like Wikipedia says, it’s a trade-off.
Here are some oft-repeated bits of advice on choosing a working space:
1. For images intended for the web, use (or at least convert the final image to) sRGB.
2. For the most accuracy in your image editing (that is, making the most of your limited ´´bits´´
with the least risk of banding or clipping when you convert your image from your working
space to an output space), use the smallest working space that includes all the colors in the
scene that youphotographed, plusa little extraroom for those new colors you intentionally
produce as you edit.
3. If you are working in 8-bits rather than 16-bits, choose a smaller rather than a larger work-
ing space to avoid clipping and banding.
4. For archival purposes, convert your raw file to a 16-bit tiff with a large gamut working
space to avoid loosing color information. Then convert this archival tiff to your medium-
gamut or large-gamut working space of choice (saving the converted working tiff under a
new name, of course).
For more information on choosing a working space, seethispage, Information about RGB Work-
ing Spacesfor a visual comparison of the gamut (array of included colors) of the variousworking
color spaces. Seehereandherefor a pro- and con- presentation, respectively, of the merits of us-
ing large gamut working spaces. And while you are on the website,
check out the tutorial on color management.
C# PDF Page Delete Library: remove PDF pages in, ASP.NET
Free online C# class source code for deleting specified PDF pages in .NET console application. Able to remove a single page from PDF document.
batch update pdf metadata; batch pdf metadata
C# PDF Password Library: add, remove, edit PDF file password in C#
Support to add password to PDF document online or in C# String outputFilePath = Program.RootPath + "\\" Remove.pdf"; // Remove password in the input file and
preview edit pdf metadata; view pdf metadata
The Showfoto Handbook
3.2.7 Printer profiles, rendering intents, and soft-proofing Where do I get a printer profile?
Whew! We’ve come a long way - almost ready to print that image! Where do I get a printer pro-
file? Well, you already know the answer. You can use the generic profile that comes with your
printer. You can purchase a professionally produced profile. If you ask, some commercial print-
ing establishments will send you their printer profiles (which won’t work with your printer!).
You can make your own printer profile using Argyll, in which case your profile can be tailored
to your particular paper, inks, and even image characteristics (if you are printing a series of im-
ages with a color palette limited to subdued browns, you don’t need a printer profile that tries
to make room for saturated cyans and blues). I cannot offer any more advice or links to more in-
formation on thissubject because I’ve just started to learn about printing images (previously I’ve
only viewed and shared my images via monitor display). But do seethispage for an excellent
presentation of the benefits of producing your own printer profile, plus a resoundingly positive
endorsement of using Argyll for making your printer profile. What about rendering intents?
´´Rendering intent´´ refers to the way color gamuts are handled when the intended target color
space (for example, the monitor or the printer) cannot handle the full gamut of the source color
space (for example the working space).
There are four commonly-used rendering intents: perceptual, relative colorimetric, absolute col-
orimetric, and saturation. I have searched the Internet looking for the best write-up on rendering
intents and the trade-offs involved in choosing one rendering intent over another. I believe I
found that article. Seethispage . Briefly quoting from the Cambridge in Color article on color
space conversion:
Perceptual and relative colorimetric rendering are probably the most useful conver-
siontypes for digital photography. Eachplacesa different priority onhow they render
colors within the gamut mismatch region.
Relative colorimetric maintains a near exact relationship between in gamut colors,
even if this clips out of gamut colors.
Incontrast, perceptualrendering tries to also preserve some relationship between out
of gamut colors, even if this results in inaccuracies for in gamut colors...
Absolute is similar to relative colorimetric in that it preserves in gamut colors and
clips those out of gamut, but they differ in how each handles the white point... Rela-
tive colorimetric skews the colors within gamut so that the white point of one space
aligns with that of the other, while absolute colorimetric preserves colors exactly
(without regard to changing white point). ...
Saturation rendering intent tries to preserve saturated colors.
Iwould quote the entire article (it’s that good), but that would involve ´´unfair usage´´ I am
sure. So go check out the article for yourself. The illustrations in the article really help to clarify
what the different rendering intents actually do and the compromises involved in choosing one
rendering intent over another.
Foranother excellentsource of informationonrendering intentswith accompanyingillustrations,
seethispage. What rendering intent should I use for displaying images on my monitor?
The usual choice is relative colorimetric. I would suggest that you not use absolute colorimetric
(e.g. with ufraw) unless you want very strange results.
C# PDF remove image library: remove, delete images from PDF in C#.
Text in PDF. Image: Insert Image to PDF. Image: Remove Image from PDF Page. Cut Image in Page. Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
batch pdf metadata; pdf metadata reader
C# PDF bookmark Library: add, remove, update PDF bookmarks in C#.
Ability to remove and delete bookmark and outline from PDF document. Merge and split PDF file with bookmark. Save PDF file with bookmark open.
read pdf metadata online; pdf metadata editor
The Showfoto Handbook What is soft-proofing?
Soft-proofing will show you the differences to be expected between what you see on your screen
and what you will see when you make a print. To soft-proof, you need a profile for your printer
(actually, for your printer-paper combination, as the paper used affects the ink colors and the
white point). If you don’t like the soft-proofed image, you can make changes (in your working
space, not after converting the image to your printer space!) to bring the soft-proofed image more
in line with how you want the final print to look. What rendering intent should I use when I soft-proof?
I’ve always heard that you ought to use ´´perceptual intent´´ when transforming an image from
alarger working space to a smaller printer space. But especially in light of reading the afore-
mentioned Cambridge in Color article, it seems that perceptual intent may or may not give the
best results, depending on the respective gamuts of the image and printer/paper combinationin
question. I’ve been experimenting quite a bit lately with output intents for printing. I find that
for my images, the colorimetric intents give clearer, brighter colors, albeit at the cost of having
to carefully re-edit the image to avoid clipping highlights and shadows. Perusal of the various
photography forums and articles available on the Internet indicates that ´´perceptual intent´´ is
just an option, not by any means always ´´the best´´ option. And what about black point compensation?
The clearest definition I could find about black point compensation is as follows: ´´BPC is a way
to make adjustments between the maximumblack levelsof digital filesand the black capabilities
of variousdigital devices [such as aprinter]´´ (cited fromthispage ).
The article fromwhich thisdefinitioncomes offers avery clear explanation (albeit Adobe-centric)
of how black point compensation works and the practical consequences of using or not using it.
The bottomline advice is, it depends. Try soft-proofing with black point compensation on. If you
like it, use it. Otherwise, don’t use it. Can all of the rendering intents be used when converting from one color space to
In a word, no. Which rendering intentsare available whenconverting from one profile to another
depends on the destination profile. Not every profile supports every rendering intent. What
happens when you select an unsupported rendering intent isthat LCMS quietly uses the profile’s
default rendering intent.
For an informative and humorous discussion of myths surrounding the use of various rendering
intents, seehereandhere. Why does the perceptual rendering intent get recommended so often as the
´´photographic´´ rendering intent?
It’s a safe choice because it prevents clipping of shadowsand highlights, although possibly at the
expense of desaturating all your colors. So if you don’t want to bother doing any soft-proofing,
choose the perceptual rendering intent (if you don’t want to soft-proof, probably you should also
stick with sRGB).
VB.NET PDF delete text library: delete, remove text from PDF file
to remove text format by modifying text font, size, color, etc. Other PDF edit functionalities, like add PDF text, add PDF text box and field. Online .NET
remove metadata from pdf; pdf metadata viewer online
VB.NET PDF Password Library: add, remove, edit PDF file password
Remove password from PDF. Dim outputFilePath As String = Program.RootPath + "\\" Remove.pdf" ' Remove password in the input file and output to a new file.
change pdf metadata; pdf remove metadata
The Showfoto Handbook
3.2.8 A few definitions and comments
You’ve reached the end of this tutorial on color management. We’ve ´´color-managed´´ our way
all the way from the camera and the monitor, to the working space, to the printer. I’ve learned a
lot and I hope you have, too. What follow is some additional comments and definitions:
Assign a profile means change the meaning of the RGB numbers in an image by embedding a
new profile without changing the actual RGB numbers associated with each pixel in the image.
´´Convert´´ to a profile meansembed a new profile, but also change the RGB numbersat the same
time so that the meaning of the RGB values - that is, the real-world visible color represented by
the trio of RGB numbers associated with each pixel in an image - remains the same before and
after the conversion from one space to another.
On the other hand, every time you assign a new working space profile rather than convert to a
new working space (except when initially assigning a camera profile to the image file you get
from your raw processing software), the appearance of the image should more or less drasti-
cally change (usually for the worse, unless the wrong profile had previously been inadvertently
embedded in the image).
In theory, you should be able to do multiple conversions of an image from one working space to
another, and if you are using a color-managed image editor, eventhough all the RGB numbersin
the image will change witheach conversion, the image displayed on your screen should look the
same. In actual fact, because of rounding errors upon each conversion, not to mention gamut-
clipping when going from a larger to a smaller working space, every time you convert from one
space to another the image degrades a bit.
Device-dependent and device-independent profiles: The camera profile, a scanner profile, your mon-
itor’s profile, and your printer’s color profile are all device-dependent profiles - these profiles
only work with the specific device for which they were produced by means of profiling. Working
space profiles and the PCS’s are ´´device-independent´´. Once an image file has been translated
by LCMS via a PCS to a device-independent working space, in a sense it no longer matters what
device originally produced the image. But assoon as you want to display or print the image, then
the device (monitor, printer) used matters a great deal and requires a device-dependent profile.
An interpolatedraw file isn’t araw file. For some reason this simple point causesa lot of confusion.
But after a raw file has been interpolated by raw processing software and then output as a tiff or
jpeg, the original raw file is still a raw file, of course, but the interpolated file isjust an image file.
It isn’t a raw file.
Linear has two related and easily confused definitions. ´´Linear´´ can meanthat the image tonality
reflects the tonality in the original scene as photographed instead of being altered by the appli-
cation of an S-curve or other means of changing local and global tonality. It can also mean that
the gamma transfer curve of the color space is linear. An image can be ´´linear´´ in either, both,
or neither of these two senses. A raw image as developed by dcraw is linear in both senses. The
same image as developed by Canon’s DPP won’t be linear in either sense.
HDR and LDR do not refer to the bit-depth of the image. ´´High dynamic range´´ and ´´low dy-
namic range´´ refer to the total dynamic range encompassed by an image. A regular low dynamic
range image, say encompassing a mere 5 ´´stops´´ (the average digital camera these dayscan eas-
ily accommodate 8 or 9 stops), can be saved as an 8-, 16-, 32-, or even 64-bit image, depending
on your software, but the dynamic range of the image isn’t thereby increased. Only the number
of discrete steps from the brightest to the darkest tone in the image has changed. Conversely,
a22-stop scene (way beyond the capacity of a consumer-oriented digital camera without using
multiple exposures) can be saved as an 8- or 16-bit image, but the resulting image will exhibit
extreme banding (that is, it will display extreme banding in any given tonal range that can actu-
ally be displayed on a typical monitor at one time) because of the relatively few available discrete
tonal steps from the lightest to the darkest tone in the image.
In-camera produced jpegs don’t need a camera profile. All jpegs (or tiffs, if you have an older Minolta
Dimage camera) coming straight out of a camera (even if produced by point-and-shoots cameras
that don’t allow you to save a raw file) start life inside the camera as a raw file produced by
the camera’s A to D converter. If you save your images as jpegs, then the processor inside the
The Showfoto Handbook
camera interpolates the raw file, assigns a camera profile, translates the resulting RGB numbers
to a working space (usually sRGB but sometimes you can choose AdobeRGB, depending on the
camera), does the jpeg compression, and stores the jpeg file on your camera card. So jpegs (or
tiffs) from your camera don’t need to be assigned a camera profile which is then translated to a
working space via a PCS. Jpegs from a camera are already in a working space.
Useful mathematical information if you are dealing with dcraw’s linear gamma output: Mathemat-
ically speaking, when doing a gamma transform you normalize (that is, divide by 256 if you are
working with 8-bit values) the RGB numbers and raise the resulting numbers to an appropriate
power depending on the respective gammas of the starting and ending color space, then renor-
malize the results to a new set of RGB numbers. It’s not hard, and very instructive, to do this
with a calculator for a few sets of RGB numbers spaced from (0,0,0) to (255,255,255) to see how
RGB numbers change from one gamma encoding to another. LCMS does this for you when you
ask LCMS to convert from one color space to another. However, if ALL you are doing is convert-
ing from one color space to the same color space except for a different gamma, use imagemagick
instead of LCMS and just manipulate the RGB numbers directly, then assign the new working
space to the image - the results will be more accurate than going through acolor space transform.
Copyrighted and copyleft working spaces: I will take it as given that all the ordinarily encountered
working spaces, such as:
1. the several variants of sRGB (see
2. BruceRGB or BestRGB
3. the various ECI (European color initiative) working space profiles
4. AdobeRGB, Adobe WideGamutRGB, and Kodak/Adobe ProPhotoRGB (Kodak and Adobe
ProPhoto are the same, just branded differently) and their non-branded, non-copyrighted
counterparts (Oyranos includes a non-branded version of AdobeRGB)
and quite a few other working spaces that could be added to this list, are all more or less suit-
able as working spaces. Which working space you should use depends only and solely on you,
on your requirements as the editor of your digital images with your eventual output intentions
(web, fine art print, etc). However, as acritical aside, if youare using Adobe or other copyrighted
working space profiles, these profiles containcopyright information that showsup inyour image
exif information. Lately I’ve been perusing the openicc mailing lists. Apparently LCMS can be
used to produce nonbranded, copyleft working space profiles that are just the same as - actually
indistinguishable from - the branded, copyrighted working space profiles. It would be a won-
derful addition to Showfoto if a set of ´´copyleft´´ working space profiles, including nonbranded,
relabelled versions of ProPhotoRGB, AdobeRGB, and Adobe WidegamutRGB (perhaps in two
flavors each: linear gamma and the usual gamma), could be bundled as part of the Showfoto
3.2.9 The Universal Translator: your camera profile, the Profile Connection
Space, and LMCS
So the question for each RGB trio of values in the (let us assume) 16-bit tiff produced by dcraw
becomes, ´´What does a particular trio of RGB values for the pixels making up images produced
by this particular (make and model) camera really mean in terms of some absolute standard
referencing some ideal observer´´. This absolute standard referencing an ideal observer is more
commonly called a Profile Connection Space. A camera profile isneeded to accurately characterize
or describe the response of a given camera’s pixels to light entering that camera, so that the RGB
values in the output file produced by the raw converter can be translated first into an absolute
Profile Connection Space (PCS) and then from the PCS to your chosen working space. As a very
important aside, for most of the open source world (including digikam), the software used to
translate from the camera profile to the PCS and from the PCS to your chosen working space
and eventually to your chosen output space (for printing or perhaps monitor display) is based
The Showfoto Handbook
on lcms (thelittlecolormanagementengine). For what it’s worth, my own testing has shown
that lcms does more accurate conversions than Adobe’s proprietary color conversion engine.
Further, for almost all raw conversion programs, including commercial closed source software
such as Adobe Photoshop, the raw conversion is typically based on decoding of the proprietary
raw file done by dcraw. David Coffin, author of dcraw, is the hero of raw conversion - without
him we’d all be stuck using the usually windows/mac only proprietary software that comes
with our digital cameras. The dcraw’s interpolation algorithms (not to be confused with the
aforementioned decoding of the proprietary raw file), which are part of Showfoto if properly
used, produce resultsequalor superior to commercial, closedsource software. We in the world of
linux and open source software are NOT second-class citizens when it comes to digital imaging.
Far from.
There are two commonly used Profile Connection Spaces- CIELAB and CIEXYZ (seeColorman-
agement,sectiononcolortranslation,thenlookupCIELABandCIEXYZonwikipedia). Lcms
uses the camera profile to translate the RGB values from the interpolated raw file, that is, the
tiff produced by dcraw, into the appropriate Profile Connection Space (usually CIEXYZ - why
CIEXYZ? I haven’t taken the time to learn). A profile connection space is not itself a working
space. Rather a PCS isan absolute reference space used only for translating from one color space
to another - think of a PCS as a Universal Translator for all the color profiles that an image might
encounter in the course of its journey from camera raw file to final output:
1. Lcms uses the camera profile, also called an input profile, to translate the interpolated
dcraw-produced RGB numbers, which only have meaning relative to your (make and
model of) camera, to a second set of RGB numbers that only have meaning in the Profile
Connection Space.
2. Lcms translates the Profile Connection Space RGB numbers to the corresponding numbers
in your chosen working space so you can edit your image. And again, these working space
numbers ONLY have meaning relative to a given working space. The same red, visually
speaking, is represented by different triosof RGB numbersin different working spaces; and
if you assign the wrong profile the image will look wrong, slightly wrong or very wrong
depending on the differences between the two profiles.
3. While you are editing your image in your chosen working space, then lcms should trans-
late all the working space RGB numbers back to the PCS, and then over to the correct RGB
numbersthat enable your monitor (your display device) to give you the most accurate pos-
sible display representation of your image as it is being edited. This translation for display
is done on the fly and you should never even notice it happening, unless it doesn’t happen
correctly - then the displayed image will look wrong, perhaps alittle wrong, perhaps really,
really, really wrong.
4. When you are satisfied that your edited image is ready to share with the world, lcms trans-
lates the working space RGB numbers back into the PCS space and out again to a printer
color space using a printer profile characterizing your printer/paper combination (if you
plan on printing the image) or to sRGB (if you plan on displaying the image on the web or
emailing it to friends or perhaps creating a slide-show to play on monitors other than your
To back up a little bit and look at the first color profile an image encounters, that is, the camera
profile (see (1) immediately above) - dcraw can in fact apply your camera profile for you (dcraw
uses lcms internally). But (i)the generating of the tiff composed of the interpolated RGB values
derived from the camera raw file, and (ii)the application of the camera profile to the interpolated
file, are two very distinct and totally separable (separable in theory and practice for dcraw; in
theory only for most raw converters) steps. The dcraw command line output options ´´-o 0 [Raw
color (unique to each camera)] -4 [16-bit linear] -T [tiff]´´ tell dcraw to output the RGB numbers
from the raw interpolation into a tiff WITHOUT applying a camera input profile (the words
in brackets explain the options but should not be entered at the command line). Then, if you
truly enjoy working from the command line, you can use the lcms utility tifficc to apply your
camera profile yourself. The advantage of doing so is that you can tell lcms to use high quality
conversion (dcraw seems to use the lcms default medium). The disadvantage, of course, is that
applying your camera profile from the command line addsone extra step to your raw workflow.
The Showfoto Handbook Where to find camera profiles
So where do we get these elusive and oh-so-necessary camera-specific profiles that we need to
translate our interpolated raw files to a working color space? TheUFRAWwebsite section on
color management has a bit of information on where to find ready-made camera profiles. It’s
an unfortunate fact of digital imaging that the camera profiles supplied by Canon, Nikon, and
the like don’t work as well with raw converters other than each camera manufacturer’s own
proprietary raw converter. Which is why Bibble and Phase One (and Adobe, but ACR hides the
Adobe-made profiles inside the program code), for example, have to make their own profiles for
allthe cameras that they support - keep thisproprietary propensity of your camera manufacturer
in mind next time you buy a digital camera.
But back to finding a camera profile for YOUR camera - the real answer (assuming you don’t
find a ready-made profile that makes you happy) is to make your own camera profile or have
one made for you. There are quite a few commercial services who provide profiling services (for
afee, of course). Or you can use LPRof or Argyll to profile your camera yourself. I haven’t yet
walked down that road so I cannot speak about how easy or difficult the process of profiling a
camera might be. But I would imagine, knowing how very meticulous the people behind Argyll,
LPRof, and lcms are about color management, that making your own camera profile is very do-
able and very likely the results will be better than any proprietary profile. After all, Canon (and
also Bibble and Phase One for that matter) didn’t profile MY camera - they just profiled acamera
LIKE mine.
Working Spaces:
So now your raw file has been interpolated by dcraw and you’ve obtained a camera profile and
used lcms tifficc to apply your camera profile to the tiff produced by dcraw (or you’ve asked
dcraw to apply it for you). What does all this mean? The real answer involves a lot of math and
color science that goesway over my head andlikely yours. The short, practicalanswer is that nei-
ther the camera profile space nor the Profile Connection Space is an appropriate space for image
editing. Your next step is to choose a working space for image editing. And then you (or rather
the lcms color management engine that your open source digital imaging software uses) actually
perform a double translation. First lcms uses the camera profile to translate the RGB values of
each pixel in the dcraw-output-image-without-camera-profile-applied into the aforementioned
Profile Connection Space. Then it translates the RGB values of each pixel from the PCS to your
chosen working space.
Confusions and confusing terminology:
Before talking more about working spaces, some confusions and confusing terminology needsto
be cleared up:
First, sRGB is both a working color space and an output color space for images intended for
the web and for monitor display (if you have a spiffy new monitor with a gamut larger than
the gamut covered by sRGB, obviously you might want to reconsider what output profile to
use to best take advantage of your wonderful and hopefully calibrated and profiled monitor,
but please convert your image to sRGB before sending it on to your friends!). sRGB is also the
color space that a lot of home and mass-production commercial printers expect image files to be
in when sent to the printer. It is also the color space that most programs assume if an image
does not have an embedded color profile telling the program what color space should be used
to interpret (translate) the RGB numbers. So if you choose to not use color-management, your
color-management choices are simple - set everything to sRGB.
Second, all jpegs (or tiffs, if you have an older Minolta Dimage camera) coming straight out of a
camera (even if produced by point-and-shoots cameras that don’t allow you to save a raw file)
start life inside the cameraasa raw file produced by the camera’s A to D converter. The processor
inside the camera interpolates the raw file, assigns a camera profile, translates the resulting RGB
numbers to a working space (usually sRGB but sometimes you can choose AdobeRGB, depend-
ing on the camera), does the jpeg compression, and stores the jpeg file on your camera card. So
jpegs (or tiffs) from your camera NEVER need to be assigned a camera or input profile which
is then translated to a working space via a PCS. Jpegs from a camera are already in a working
The Showfoto Handbook
Third, in case anyone isunsure onthis point, note that an interpolated raw file isno longer a raw
file - it has beeninterpolated andthenoutput asatiff whose RGB valuesneed to be translated to a
working space, using the camera profile, the PCS, and lcms. Fourth(strictly for future reference),
to introduce a bit of commonly heard color-management terminology here - the camera profile
and your printer’s color profile are both device dependent, whereas the working space will be
device-independent - it can be used with any image, with any properly color-managed software,
without regard for where the image originated.
Fifth, above I have used the words translate and translation as a descriptive metaphor for what
lcms does when it translates RGB values from one color space to another via the PCS. The usual
and correct terminology is convert and conversion, which I will use below. The four methods
of conversion from one color space to another are: perceptual, relative colorimetric, absolute
colorimetric, and saturation. Which method of conversion you should use for any given image
processing step from raw file to final output image is beyond the scope of this tutorial. The
standard advice is: when in doubt, use perceptual.
Sixth (and again, strictly for future reference), assign a profile means change the meaning of
the RGB numbers in an image by embedding a new profile without changing the actual RGB
numbers associated with each pixel in the image; convert means embed a new profile, but also
change the RGB numbers at the same time so that the meaning of the RGB values - that is, the
real-world visible color represented by the trio of RGB numbers associated with each pixel in
an image - remains the same before and after the conversion from one space to another. You
should be able to do multiple conversions of an image from one working space to another, and
with a properly color-managed image editor, even though all the RGB numbers in the image
will change with each conversion, the image on your screen should look the same (leaving aside
the usually unnoticeable small but inevitable changes from accumulated gamut mismatches and
mathematical rounding errors). However, every time you assign a new working space profile
rather than convert to a new working space, the appearance of the image should more or less
drastically change (usually for the worse).
Finally, (and this is a crucially important point), color management is NOT only relevant if you
shoot raw. Color management affects every stage of the image processing pipeline, whether you
start with a raw file that you, yourself interpolate and translate into a tiff, or if you start with a
jpeg or tiff produced by your camera.
Copyrighted and copyleft working spaces:
Iwill take it as given that ALL the ordinarily encountered working spaces, such as:
1. the several variants of sRGB (
2. BruceRGB
3. the various ECI (European color initiative) working spaceprofiles
4. AdobeRGB, Adobe WideGamutRGB, and Kodak/Adobe ProPhotoRGB (Kodak and Adobe
ProPhoto are the same, just branded differently) and theirnon-branded,non-copyrighted
counterparts (Oyranos includes a non-branded version of AdobeRGB
5. andquite afew othersthat couldbe added to thislist are allmore or lesssuitable asworking
spaces. Which working space you should use depends only and solely on YOU, on YOUR
requirements as the editor of YOUR digital images with YOUR eventual output intentions
(web, fine art print, etc).
However, as a critical aside, if you are using Adobe (or other copyrighted) working space pro-
files, these profiles contain copyright information that shows up in your image exif information.
Lately I’ve been perusing the openicc mailing lists. Apparently lcms can be used to produce non-
branded, copyleft working space profiles that are just the same as - actually indistinguishable
from - the branded, copyrighted working space profiles. It would be a wonderful addition to
digikam if a set of ´´copyleft´´ working space profiles, including nonbranded, relabelled versions
of ProPhotoRGB, AdobeRGB, and Adobe WidegamutRGB (perhaps in two flavors each: linear
gamma and the usual gamma), could be bundled as part of the Showfoto package.
Documents you may be interested
Documents you may be interested