diff --git a/contributors_manual/optimising_images.rst b/contributors_manual/optimising_images.rst index f5a60810e..c953fd355 100644 --- a/contributors_manual/optimising_images.rst +++ b/contributors_manual/optimising_images.rst @@ -1,268 +1,268 @@ .. meta:: :description: How to make and optimise images for use in the manual. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier :license: GNU free documentation license 1.3 or later. .. index:: Metadata, Optimising Images .. _images_for_manual: ===================== Images for the Manual ===================== This one is a little bit an extension to :ref:`saving_for_the_web`. In particular it deals with making images for the manual, and how to optimise images. .. contents:: Tools for making screenshots ---------------------------- Now, if you wish to make an image of the screen with all the dockers and tools, then :ref:`saving_for_the_web` won't be very helpful: It only saves out the canvas contents, after all! So, instead, we'll make a screenshot. Depending on your operating system, there are several screenshot utilities available. Windows ~~~~~~~ Windows has a build-in screenshot tool. It is by default on the :kbd:`PrtSc` key. On laptops you will sometimes need to use the :kbd:`Fn` key. Linux ~~~~~ Both Gnome and KDE have decent screenshot tools showing up by default when using the :kbd:`PrtSc` key, as well do other popular desktop environments. If, for whatever reason, you have no ImageMagick With imagemagick, you can use the following command:: import -depth 8 -dither While we should minimize the amount of gifs in the manual for a variety of accessibility reasons, you sometimes still need to make gifs and short videos. Furthermore, gifs are quite nice to show off features with release notes. For making short gifs, you can use the following programs: * `Peek `_ -- This one has an appimage and a very easy user-interface. Like many screenrecording programs it does show trouble on Wayland. OS X ~~~~ The Screenshot hotkey on OS X is :kbd:`Shift + Command + 3`, according to `the official apple documentation `_. The appropriate file format for the job --------------------------------------- Different file formats are better for certain types of images. In the end, we want to have images that look nice and have a low filesize, because that makes the manual easier to download or browse on the internet. GUI screenshots This should use png, and if possible, in gif. Images that have a lot of flat colors. This should use png. Grayscale images These should be gif or png. Images with a lot of gradients These should be JPG. Images with a lot of transparency. These should use PNG. The logic is the way how each of these saves colors. Jpeg is ideal for photos and images with a lot of gradients because it :ref:`compresses differently `. However, contrasts don't do well in jpeg. PNG does a lot better with images with sharp contrasts, while in some cases we can even have less than 256 colors, so gif might be better. -Greyscale images, even when they have a lot of gradients variation, should be PNG. The reason is that when we use full color images, we are, depending on the image, using 3 to 5 numbers to describe those values, with each of those values having a possibility to contain any of 256 values. JPEG and other 'lossy' file formats use clever psychological tricks to cut back on the amount of values an image needs to show its contents. However, when we make grayscale images, we only keep track of the lightness. The lightness is only one number, that can have 256 values, making it much easier to just use gif or PNG, instead of jpeg which could have nasty artifacts. (And, it is also a bit smaller) +Grayscale images, even when they have a lot of gradients variation, should be PNG. The reason is that when we use full color images, we are, depending on the image, using 3 to 5 numbers to describe those values, with each of those values having a possibility to contain any of 256 values. JPEG and other 'lossy' file formats use clever psychological tricks to cut back on the amount of values an image needs to show its contents. However, when we make grayscale images, we only keep track of the lightness. The lightness is only one number, that can have 256 values, making it much easier to just use gif or PNG, instead of jpeg which could have nasty artifacts. (And, it is also a bit smaller) **When in doubt, use PNG.** Optimising Images in quality and size ------------------------------------- Now, while most image editors try to give good defaults on image sizes, we can often make them even smaller by using certain tools. Windows ~~~~~~~ The most commonly recommended tool for this on Windows is `IrfranView `_, but the dear writer of this document has no idea how to use it exactly. The other option is to use PNGCrush as mentioned in the linux section. Linux ~~~~~ Optimising PNG ^^^^^^^^^^^^^^ There is a whole laundry list of `PNG optimisation tools `_ available on Linux. They come in two categories: Lossy (Using psychological tricks), and Lossless (trying to compress the data more conventionally). The following are however the most recommended: `PNGQuant `_ A PNG compressor using lossy techniques to reduce the amount of colors used in a smart way. To use PNGquant, go to the folder of choice, and type:: pngquant --quality=80-100 image.png Where *image* is replaced with the image file name. When you press :kbd:`Enter`, a new image will appear in the folder with the compressed results. PNGQuant works for most images, but some images, like the color selectors don't do well with it, so always double check that the resulting image looks good, otherwise try one of the following options: `PNGCrush `_ A lossless PNG compressor. Usage:: pngcrush image.png imageout.png This will try the most common methods. Add ``-brute`` to try out all methods. `Optipng `_ Another lossless PNG compressor which can be run after using PNGQuant, it is apparently originally a fork of png crush. Usage:: optipng image.png where image is the filename. OptiPNG will then proceed to test several compression algorithms and **overwrite** the image.png file with the optimised version. You can avoid overwriting with the ``--out imageout.png`` command. Optimising GIF ^^^^^^^^^^^^^^ * `FFMPEG `_ * `Gifski `_ * `LossyGif `_ Optimising JPEG ^^^^^^^^^^^^^^^ Now, JPEG is really tricky to optimize properly. This is because it is a :ref:`lossy file format `, and that means that it uses psychological tricks to store its data. However, tricks like these become very obvious when your image has a lot of contrast, like text. Furthermore, JPEGs don't do well when they are resaved over and over. Therefore, make sure that there's a lossless version of the image somewhere that you can edit, and that only the final result is in JPEG and gets compressed further. MacOS/ OS X ~~~~~~~~~~~ * `ImageOptim `_ -- A Graphical User Interface wrapper around commandline tools like PNGquant and gifski. Editing the metadata of a file ------------------------------ Sometimes, personal information gets embedded into an image file. Othertimes, we want to embed information into a file to document it better. There are no less than 3 to 4 different ways of handling metadata, and metadata has different ways of handling certain files. The most commonly used tool to edit metadata is :program:`ExifTool`, another is to use :program:`ImageMagick`. Windows and OS X ~~~~~~~~~~~~~~~~ To get exiftool, `just get it from the website `_. Linux ~~~~~ On Linux, you can also install exiftool. Debian/Ubuntu ``sudo apt-get install libimage-exiftool-perl`` Viewing Metadata ~~~~~~~~~~~~~~~~ Change the directory to the folder where the image is located and type:: exiftool image where image is the file you'd like to examine. If you just type ``exiftool`` in any given folder it will output all the information it can give about any file it comes across. If you take a good look at some images, you'll see they contain author or location metadata. This can be a bit of a problem sometimes when it comes to privacy, and also the primary reason all metadata gets stripped. You can also use `ImageMagick's identify `_:: identify -verbose image Stripping Metadata ~~~~~~~~~~~~~~~~~~ Stripping metadata from the example ``image.png`` can be done as follows: `ExifTool `_ `exiftool -all= image.png` This empties all tags exiftool can get to. You can also be specific and only remove a single tag: `exiftool -author= image.png` OptiPNG `optipng -strip image.png` This will strip and compress the png file. `ImageMagick `_ `convert image.png --strip` Extracting metadata ~~~~~~~~~~~~~~~~~~~ Sometimes we want to extract metadata, like an icc profile, before stripping everything. This is done by converting the image to the profile type: `ImageMagick's Convert `_ First extract the metadata to a profile by converting:: convert image.png image_profile.icc Then strip the file and readd the profile information:: convert -profile image_profile.icc image.png Embedding description metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Description metadata is really useful for the purpose of helping people with screenreaders. Webbrowsers will often try to use the description metadata if there's no alt text to generate the alt-text. Another thing that you might want to embed is stuff like color space data. ExifTool ImageMagick Setting an exif value:: convert -set exif:ImageDescription "An image description" image.png image_modified.png Setting the PNG chunk for description:: convert -set Description "An image description" image.png image_modified.png Embedding license metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~ In a certain way, embedding license metadata is really nice because it allows you to permanently mark the image as such. However, if someone then uploads it to another website, it is very likely the metadata is stripped with imagemagick. Using Properties ^^^^^^^^^^^^^^^^ You can use dcterms:license for defining the document where the license is defined. ImageMagick For the GDPL:: convert -set dcterms:license "GDPL 1.3+ https://www.gnu.org/licenses/fdl-1.3.txt" image.png This defines a shorthand name and then license text. For Creative Commons BY-SA 4.0:: convert -set dcterms:license "CC-BY-SA-4.0 http://creativecommons.org/licenses/by-sa/4.0/" image.png The problem with using properties is that they are a non-standard way to define a license, meaning that machines cannot do much with them. Using XMP ^^^^^^^^^ The creative commons website suggest we `use XMP for this `_. You can ask the Creative Commons License choose to generate an appropriate XMP file for you when picking a license. We'll need to use the `XMP tags for exiftool `_. So that would look something like this:: exiftool -Marked=true -License="http://creativecommons.org/licenses/by-sa/4.0" -UsageTerms="This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License." -Copyright="CC-BY-SA-NC 4.0" image.png Another way of doing the marking is:: exiftool -Marked=true -License="http://creativecommons.org/licenses/by-sa/4.0" -attributionURL="docs.krita.org" attributionName="kritaManual" image.png With imagemagick you can use the profile option again. First extract the data (if there is any):: convert image.png image_meta.xmp Then modify the resulting file, and embed the image data:: convert -profile image_meta.xmp image.png The XMP definitions per license. You can generate an XMP file for the metadata on the creative commons website. diff --git a/general_concepts/colors/color_managed_workflow.rst b/general_concepts/colors/color_managed_workflow.rst index 4e59b30fe..c77d37e49 100644 --- a/general_concepts/colors/color_managed_workflow.rst +++ b/general_concepts/colors/color_managed_workflow.rst @@ -1,378 +1,378 @@ .. meta:: :description: How a color managed workflow works. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - AnetK - Tokiedian :license: GNU free documentation license 1.3 or later. .. index:: Color, Color Management, ICC Profiles, OCIO .. _color_managed_workflow: ====================== Color Managed Workflow ====================== You may have heard that Krita has something called color-management. Or maybe you just wondered what all these 'color model' and 'color profile' things you can find in the menus mean. Color management is pretty useful for people who work in digital imaging professionally, and hopefully this page will explain why. Basic Info ---------- If you've never worked with color management before, and have no clue what it is, then know that you've probably been working in the 8bit RGB color space with the sRGB profile. This means you can choose for *sRGB built-in* or *sRGB-elle-v2-srgbtrc.icc*. With the new color space browser this profile is marked with *(default)* when using 8bit. We'll go into what these terms mean in the theory, but if you're here only for trying to figure out which is the default, you now know it. Maybe, after reading this, you may feel like changing the default, to get new and interesting results from filters, blending modes, or just the color smudge brush. What is the problem? -------------------- To explain the point of color management, you'd first need to learn which problem color management tries to solve. Let us imagine a kinder garden: The class of 28 children is subdivided in groups of 7. Each group has its own table. The teacher gives them a painting assignment: They need to paint a red triangle, a blue square, a green circle and put a yellow border around the three. The kids are very experienced with painting already, so the teacher can confidently leave the smarter ones to their own devices, and spent more time on those who need help. The following results come from painting: Even though all groups had the same assignment, each group's result looks different. .. figure:: /images/en/color_category/Krita_2_9_colormanagement_group1.png :figwidth: 500 :align: center Group 1 had vermillion red, citron yellow and ultramarine blue to their disposal. This means their triangle looks nice and red, but their circle's green is muddy. This is because ultramarine is too dark of a blue to create nice greens with. .. figure:: /images/en/color_category/Krita_2_9_colormanagement_group2.png :figwidth: 500 :align: center Group 2 had magenta red, citron yellow and cerulean blue. Magenta is a type of red that is closer to pink, opposed to vermillion, which is closer to orange. However, their green looks nice because cerulean is a much lighter blue. .. figure:: /images/en/color_category/Krita_2_9_colormanagement_group3.png :figwidth: 500 :align: center Group 3 had vermillion red, citron yellow, emerald green and cerulean blue. They didn't mix their green, and thus ended up with a purer color. .. figure:: /images/en/color_category/Krita_2_9_colormanagement_group4.png :figwidth: 500 :align: center Finally, group 4 has vermillion red, citron yellow and cerulean blue. Their colors probably look like what you imagined. Now, these are kindergarteners, so this isn't the largest problem in the world. However, imagine that something like this happened at a printing company? Imagine four printers printing the same magazine with wildly different results? That would be disastrous! For this purpose, we invented color management. What is color management? ------------------------- Color management is, dryly put, a set of systems that tries to have the same color translate properly between color devices. It usually works by attempting to covert a color to the reference color space XYZ. XYZ is a coordinate system that has a spot for all colors that the average human eye can see. From XYZ it can then be translated back into another device space, such as RGB (for screens), or CMYK (for printers). Krita has two systems dedicated to color management. On the one hand, we have **lcms2**, which deal with ICC profiles, and on the other, we have **OCIO**, which deal with LUT color management. To give a crude estimate, ICC profiles deal with keeping colors consistent over many interpretations of devices (screens, printers) by using a reference space, and OCIO deals with manipulating the interpretation of said colors. Within both we can identify the following color spaces: Device spaces - Device spaces are those describing your monitor, and have to be made using a little device that is called "colorimeter". This device, in combination with the right software, measures the strongest red, green and blue your screen can produce, as well as the white, black and grey it produces. Using these and several other measurements it creates an ICC profile unique to your screen. You set these in Krita's color management tab. + Device spaces are those describing your monitor, and have to be made using a little device that is called "colorimeter". This device, in combination with the right software, measures the strongest red, green and blue your screen can produce, as well as the white, black and gray it produces. Using these and several other measurements it creates an ICC profile unique to your screen. You set these in Krita's color management tab. By default we assume sRGB for screens, but it's very likely that your screen isn't exactly fitting sRGB, especially if you have a high quality screen, where it may be a bigger space instead. Device spaces are also why you should first consult with your printer what profile they expect. Many printing houses have their own device profiles for their printers, or may prefer doing color conversion themselves. You can read more about colorimeter usage :ref:`here `. Working spaces These are delivered alongside Krita for ICC, and downloadable from the OCIO website for OCIO. Working spaces are particularly nice to do color calculations in, which programs like Krita do often. It's therefore recommended to have a working space profile for your image. Aesthetic or Look spaces These are special spaces that have been deformed to give a certain look to an image. Krita doesn't deliver Look profiles for ICC, nor does it yet support Look spaces for OCIO. Color managed workflow ---------------------- Knowing this about these spaces of course doesn't give you an idea of how to use them, but it does make it easier to explain how to use them. So let us look at a typical color management workflow: .. figure:: /images/en/color_category/Krita-colormanaged-workflow_text.svg :figwidth: 800 :align: center A typical example of a color managed workflow. We have input from scanners and cameras, which we convert to a working space that can be used between different editing software, and is converted to an output space for viewing on screen or printing. In a traditional color managed workflow, we usually think in terms of real world colors being converted to computer colors and the other way around. So, for example photos from a camera or scanned in images. If you have a device space of such a device, we first assign said device space to the image, and then convert it to a working space. We then do all our editing in the working space, and use the working space to communicate between editing programs. In Krita's case, due to it having two color management systems, we use ICC profiles between programs like GIMP 2.9+, Inkscape, digiKam and Scribus, and OCIO configuration between Blender and Natron. You also store your working files in the working space, just like how you have the layers unmerged in the working file, or have it at a very high resolution. Sometimes, we apply aesthetic or 'look' spaces to an image as part of the editing process. This is rather advanced, and probably not something to worry about in Krita's case. Then, when we're done editing, we try to convert to an output space, which is another device space. This can be CMYK for printers or a special screen RGB profile. When you are dealing with professional printing houses, it is best to ask them about this step. They have a lot of experience with doing the best conversion, and may prefer to do the conversion from your working space to the device space of their printers. Another form of output is the way your screen displays the color. Unlike regular output, this one is done all the time during editing: After all, you need to be able to see what you are doing, but your screen is still a device with a device space, so it does distort how the image looks. In this manner, you can see your screen as a set of binoculars you have to look through to see your image at all. Therefore, without a profiled monitor, you actually don't know what the actual colors you are working with are like, because the computer doesn't know the relevant properties of your screen. So if you profiled your monitor, give Krita the profile in the settings, and select the sRGB space to draw in, you are for the first time seeing the actual colors of the sRGB space. So what does this mean? ----------------------- .. figure:: /images/en/color_category/Krita-colormanaged-workflow_krita_text.svg :figwidth: 300 :align: right When we paint from scratch, we can see our screen profile as the input space, because we use it to determine what colors to pick. This somewhat simplifies the workflow, but makes the screen profile and viewing conditions more important. Now, photographers and people who do a tricky discipline of VFX called 'color grading' will go completely mad over trying to get the colors they put in to come out 100% correctly, and will even count in factors like the time of day and the color they painted their walls. For example, if the wall behind your computer is pure red, your eyes will adjust to be less sensitive to red, which means that the colors they pick in the program could come out redder. We call these the *viewing conditions*. Thankfully, artists have to worry a slight bit less about this. As illustrations are fully handmade, we are able to identify the important bits and make appropriate contrasts between colors. This means that even if our images turn out to be slightly redder than intended, it is less likely the whole image is ruined. If we look back at the kindergarten example above, we still understand what the image was supposed to look like, despite there being different colors on each image. Furthermore, because the colors in illustrations are deliberately picked, we can correct them more easily on a later date. Yet, at the same time, it is of course a big drag to do this, and we might have had much more flexibility had we taken viewing conditions under consideration. That said, for artists it is also very useful to understand the working spaces. Different working spaces give different results with filters and mixing, and only some working spaces can be used for advanced technology like HDR. Similarly, Krita, as a program intended to make images from scratch, doesn't really worry about assigning workspaces after having made the image. But because you are using the screen as a binocular to look at your image, and to pick colors, you can see your screen's device space as an input space to the image. Hence why profiling your monitor and giving the profile to Krita in the settings can help with preparing your work for print and future ventures in the long run. -Overall, it is kinda useful to keep things like viewing conditions in the back of your mind. Many professional artists use a mid-grey color as their default canvas background because they find they create much more dynamic images due to having improved their viewing conditions. It is also why a lot of graphics programs, including Krita, come with a dark theme nowadays. (Though, of course this might also be because dark themes can be considered cool, who knows.) +Overall, it is kinda useful to keep things like viewing conditions in the back of your mind. Many professional artists use a mid-gray color as their default canvas background because they find they create much more dynamic images due to having improved their viewing conditions. It is also why a lot of graphics programs, including Krita, come with a dark theme nowadays. (Though, of course this might also be because dark themes can be considered cool, who knows.) .. _icc_profiles: ICC profiles ------------ An ICC profile is a set of coordinates describing the extremities of the device space within XYZ, and it is the color management data you use to communicate your working space to printers and applications that are designed for the print industry, such as GIMP, Scribus, Photoshop, Illustrator, Inkscape, Digikam, RawTheraphee, etc. You have two types of ICC profiles: Matrix Shaper profiles. These are delivered alongside Krita. Matrix shaper profiles are made by setting parameters and interpolating between these to get the exact size of the color space. Due to this, Krita's color space browser can give you a lot of information on these profiles. Such profiles are also preferable as working space. .. figure:: /images/en/color_category/Kiki_matrix_profile.png :figwidth: 500 :align: center Matrix shaper profiles have a few parameters that describe the color space which are then interpolated between, this requires a lot of maths. cLUT profiles These are fairly rare, and primarily used to describe printer profiles, such as CMYK. cLUT, or Color Look-up Table profiles store far more data than Matrix shaper profiles, so they can hold data of little particularities caused by, for example, unexpected results from mixing pigments. This is a far more organic approach to describing a color space, hence why a lot of programs that don't care for color management much don't support these. .. figure:: /images/en/color_category/Kiki_cLUTprofiles.png :figwidth: 500 :align: center cLUT profiles work by holding tables of each color in a color space and their respective coordinates in a reference space. For CMYK this is typically L\*A\*B\* and for the rest XYZ. These tables are tricky to make, which means these profiles are a lot rarer. The interesting thing about ICC profiles is that your working space can be larger than your device space. This is generally not bad. However, when converting, you do end up with the question of how to translate the working space values. Perceptual This just squishes the values of the working space into the space it's converted to. It's a nice method to see all possible values in this, but not so good if you want accurate color reproduction. Use this if you want to see all colors in an image, or want to express all possible contrasts. Doesn't work with Matrix Shaper profiles, defaults to relative colorimetric. Absolute Colorimetric. The opposite to Perceptual, Absolute colorimetric will attempt to retain all the correct colors at whatever cost, which may result in awful looking colors. Recommended only for reproduction work. Doesn't work with Matrix Shaper profiles in Krita due to ICC v4 workflow standards. Relative Colorimetric An in between solution between perceptual and absolute, relative will try to fit whatever colors it can match between color spaces. It does this by aligning the white and black points. It cuts off the rest to their respective borders. This is what all matrix shaper profiles default to during conversion, because the ICC v4 workflow specifies to only use Relative Colorimetric for matrix shaper profiles. Saturation Does anything to retain colorfulness, even hue will be sacrificed. Used in infographics. Doesn't work with Matrix Shaper profiles, defaults to relative colorimetric. *ICC profile version* is the last thing to keep in mind when dealing with ICC profiles. Krita delivers both Version 2 and Version 4 profiles, with the later giving better results in doing color maths, but the former being more widely supported (as seen below in 'Interaction with other applications'). This is also why Krita defaults to V2, and we recommend using V2 when you aren't certain if the other programs you are using support V4. LUT docker and HDR imaging -------------------------- .. figure:: /images/en/LUT_Management_Docker.png :figwidth: 300 :align: center The :ref:`lut_docker` is the second important bit of color management in Krita that is shared between Krita and programs like Blender, Natron and Nuke, and only uses Look Up Tables that are configured via a config file. You can set the workingspace of the image under input color space, and the display to sRGB or your own LUT if you have added it to the configuration. View in this case is for proofing transforms to a certain display device. Component, exposure, gamma, whitepoint and blackpoint are knobs which allows you to modify the display filter. .. figure:: /images/en/color_category/Krita_HDR_1.svg :figwidth: 800 :align: center As explained before, we can see our monitor as a telescope or binocular into the world of our picture. Which means it distorts our view of the image a little. But we can modify this binocular, or display filter to see our image in a different way. For example, to allow us to see the white in an image that are whiter than the white of our screen. To explain what that means, we need to think about what white is. For example, white, on our monitor is full red, full green and full blue. But it's certainly different from white on our paper, or the color of milk, white from the sun, or even the white of our cell-phone displays. Black similarly, is brighter on a LCD display than a LED one, and incomparable with the black of a carefully sealed room. This means that there's potentially blacker blacks than screen black, and white whites than screen white. However, for simplicity's sake we still assign the black-point and the white-point to certain values. From there, we can determine whether a white is whiter than the white point, or a black blacker than the black-point. The LUT docker allows us to control this display-filter and modify the distortion. This is useful when we start modifying images that are made with scene referred values, such as HDR photos, or images coming out of a render engine. .. figure:: /images/en/color_category/Krita_HDR2.svg :figwidth: 800 :align: center So, for example, we can choose to scale whiter-than-screen-white to our screen-white so we can see the contrasts there. The point of this is that you can take advantage of more lightness detail in an image. While you can't see the difference between screen white and whiter-than-screen-white (because your screen can't show the difference), graphics programs can certainly use it. A common example is matching the lighting between a 3d model and a real world scene. Others are advanced photo retouching, with much more contrast information available to the user. In painting itself, this allows you to create an image where you can be flippant with the contrast, and allow yourself to go as bright as you'd like. LUT docker manipulations are per view, so you can create a new view and set it to luminosity. This way you can see the image in both color as well as grayscale and keep a good eye on your values. Another example is to carefully watch the gradients in a certain section. Like ICC, the LUT Docker allows you to create a profile of sorts for your device. In this case it's the 'lut', which stands for 'Look Up Table', and which can be added to OCIO by modifying the configuration file. When OCIO is turned on, the configuration in :menuselection:`Settings --> Configure Krita --> Color Management` is turned off, unless you are using the :guilabel:`Internal` color engine. In summary ---------- Krita has two modes of color management: * ICC works in terms of spaces relative to the CIEXYZ space, and requires an ICC profile. * OCIO works in terms of interpretation, and makes use of luts. * both can be made with a colorimeter. * If you want to have a properly color managed workflow, you have one made customary for the input device (your screen) and the output devices (your printer, or target screen). For web the output is always sRGB. * Set up your screen profiles under :menuselection:`Settings --> Configure Krita --> Color management`. * Do NOT use screen profiles or other device profiles to draw in. Use a working space profile such as any of the elle profiles for this, as the color maths will be much more predictable and pleasant. Krita will convert between your screen and working space on the fly, allowing you to pick the correct colors. This turns your screen into binoculars to view the image. * Use the appropriate color management for the appropriate workflow. If you are working with Blender, you will be better off using OCIO, than ICC. If you are working with Scribus or Photoshop, use ICC. Krita does a lot of color maths, often concerning the blending of colors. This color maths works best in linear color space, and linear color space requires a bit depth of at the least 16bit to work correctly. The disadvantage is that linear space can be confusing to work in. If you like painting, have a decent amount of RAM, and are looking to start your baby-steps in taking advantage of Krita's color management, try upgrading from having all your images in sRGB built-in to sRGB-v2-elle-g10.icc or rec2020-v2-elle-g10.icc at 16bit float. This'll give you better color blending while opening up the possibility for you to start working in hdr! .. note:: Some graphics cards, such as those of the NVidia-brand actually have the best performance under 16bit float, because NVidia cards convert to floating point internally. When it does not need to do that, it speeds up! .. note:: No amount of color management in the world can make the image on your screen and the image out of the printer have 100% the same color. Exporting --------- When you have finished your image and are ready to export it, you can modify the color space to optimize it: If you are preparing an image for the web: * If you use 16bit color depth or higher, convert the image to 8bit color depth. This will make the image much smaller. * Krita doesn't have built-in dithering currently, which means that 16 to 18bit conversions can come out a bit banded. But you can simulate it by adding a fill layer with a pattern, set this fill layer to overlay, and to 5% opacity. Then flatten the whole image and convert it to 8bit. The pattern will function as dithering giving a smoother look to gradients. * If it's a gray-scale image, convert it to gray-scale. * If it's a color image, keep it in the working space profile: Many web browsers these days support color profiles embedded into images. Firefox, for example, will try to convert your image to fit the color profile of the other monitor (if they have one). That way, the image will look almost exactly the same on your screen and on other profiled monitors. .. note:: In some versions of Firefox, the colors actually look strange: This is a bug in Firefox, which is because its `color management system is incomplete `_, save your png, jpg or tiff without an embedded profile to work around this. If you are preparing for print: * You hopefully made the picture in a working space profile instead of the actual custom profile of your screen, if not, convert it to something like adobe rgb, sRGB or rec2020. * Check with the printer what kind of image they expect. Maybe they expect sRGB color space, or perhaps they have their own profile. Interaction with other applications ----------------------------------- Blender ~~~~~~~ If you wish to use krita's OCIO functionality, and in particular in combination with Blender's color management, you can try to have it use Blender's OCIO config. Blender's OCIO config is under ``/version number/datafiles/colormanagement``. Set the LUT docker to use the OCIO engine, and select the config from the above path. This will give you blender's input and screen spaces, but not the looks, as those aren't supported in Krita yet. Windows Photo Viewer ~~~~~~~~~~~~~~~~~~~~ You might encounter some issues when using different applications together. One important thing to note is that the standard Windows Photo Viewer application does not handle modern ICC profiles. Krita uses version 4 profiles; Photo Viewer can only handle version 2 profiles. If you export to JPEG with an embedded profile, Photo Viewer will display your image much too dark. Example workflows ----------------- Here are some example workflows to get a feeling of how your color management workflow may look like. As mentioned before, input for your screen is set via :menuselection:`Settings --> Configure Krita --> Color management`, or via the LUT docker's 'screen space'. Working space is set via new file per document, or in the LUT docker via 'input space'. Webcomic ~~~~~~~~ .. image:: /images/en/color_category/Krita-colormanaged-workflow_webcomic.svg :width: 800 :align: center Input Your screen profile. (You pick colors via your screen) Workingspace sRGB (the default screen profile) or any larger profile if you can spare the bit depth and like working in them. Output sRGB, ICC version 2, sRGB TRC for the internet, and a specialized CMYK profile from the printing house for the printed images. Use the sRGB-elle-V2-srgbtrc.icc for going between Inkscape, Photoshop, Painttool Sai, Illustrator, GIMP, Manga Studio, Paintstorm Studio, MyPaint, Artrage, Scribus, etc. and Krita. If you are using a larger space via ICC, you will only be able to interchange it between Krita, Photoshop, Illustrator, GIMP 2.9, Manga Studio and Scribus. All others assume sRGB for your space, no matter what, because they don't have color management. If you are going between Krita and Blender, Nuke or Natron, use OCIO and set the input space to 'sRGB', but make sure to select the sRGB profile for ICC when creating a new file. For the final for the web, convert the image to sRGB 8bit, srgbtrc, do not embed the ICC profile. Then, if using png, put it through something like pngcrush or other png optimizers. sRGB in this case is chosen because you can assume the vast majority of your audience hasn't profiled their screen, nor do they have screens that are advanced enough for the wide gamut stuff. So hence why we convert to the screen default for the internet, sRGB. Print ~~~~~ .. image:: /images/en/color_category/Krita-colormanaged-workflow_print.svg :width: 800 :align: center Input Your screen profile. (You pick colors via your screen) Workingspace sRGB or rec2020 if you can afford the bit-depth being 16bit. Output Specialized CMYK profile from the printing house for the printed images. The CMYK profiles are different per printer, and even per paper or ink-type so don't be presumptuous and ask ahead for them, instead of doing something like trying to paint in any random CMYK profile. As mentioned in the viewing conditions section, you want to keep your options open. You can set the advanced color selector to transform to a given profile via :menuselection:`Settings --> Configure Krita --> Color Selector Settings`. There, tick :guilabel:`Color Selector Uses Different Color Space than Image` and select the CMYK profile you are aiming for. This will limit your colors a little bit, but keep all the nice filter and blending options from RGB. Games ~~~~~ .. image:: /images/en/color_category/Krita-colormanaged-workflow_games.svg :width: 800 :align: center Input Your screen profile. (You pick colors via your screen) Workingspace sRGB or grayscale linear for roughness and specular maps. Output This one is tricky, but in the end it'll be sRGB for the regular player. So this one is tricky. You can use OCIO and ICC between programs, but recommended is to have your images to the engine in sRGB or grayscale. Many physically based renderers these days allow you to set whether an image should be read as a linear or srgbtrc image, and this is even vital to have the images being considered properly in the physically based calculations of the game renderer. While game engines need to have optimized content, and it's recommended to stay within 8bit, future screens may have higher bit depths, and when renderers will start supporting those, it may be beneficial to develop a workflow where the working-space files are rather unnecessarily big and you run some scripts to optimize them for your current render needs, making updating the game in the future for fancier screens less of a drag. Normal maps and heightmaps are officially supposed to be defined with a 'non-color data' working space, but you'll find that most engines will not care much for this. Instead, tell the game engine not to do any conversion on the file when importing. Specular, glossiness, metalness and roughness maps are all based on linear calculations, and when you find that certain material has a metalness of 0.3, this is 30% gray in a linear space. Therefore, make sure to tell the game engine renderer that this is a linear space image (or at the very least, should NOT be converted). .. seealso:: * `Visualizing the XYZ color space `_ * `Basics of gamma correction `_ * `Panda3d example of how an image that has gamma encoded without the 3d renderer being notified of it having gamma-encoding can result in too dark images `_ * `2d examples of the effect of gamma-encoding on color maths `_ * `Basic overview of color management from argylcms manual `_ diff --git a/general_concepts/colors/color_models.rst b/general_concepts/colors/color_models.rst index 717bab9bf..aba27a9a4 100644 --- a/general_concepts/colors/color_models.rst +++ b/general_concepts/colors/color_models.rst @@ -1,196 +1,196 @@ .. meta:: :description: Color Models in Krita .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier :license: GNU free documentation license 1.3 or later. .. index:: Color, Color Models .. _color_models: ============ Color Models ============ Krita has many different color spaces and models. Following here is a brief explanation of each, and their use-cases. .. _model_rgb: RGB --- Red, Green, Blue. These are the most efficient primaries for light-based color mixing, like computer screens. Adding Red, Green and Blue light together results in White, and is thus named the additive color wheel. RGB is used for two purposes: Images that are meant for viewing on a screen: * So that could be images for the web, buttons, avatars, or just portfolio images. * Or for Video games, both sprites and textures are best in RGB there. * Or for 3d rendering, visual effects and cg animation. And for the working space. A working space is an RGB gamut that is really large and predictable, meaning it's good for image manipulation. You use this next to a profiled monitor. This way you can have precise colors while also being able to view them correctly on multiple screens. Blending modes in RGB ~~~~~~~~~~~~~~~~~~~~~ +-------+-----------------+-----------------+-----------------+--------------------+--------------------+ | | Color 1 | Color 2 | Normal | Multiply | Screen | +-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+------+------+------+------+ | | R | G | B | R | G | B | R | G | B | R | G | B | R | G | B | +=======+=====+=====+=====+=====+=====+=====+=====+=====+=====+======+======+======+======+======+======+ | R & G | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.5 | 0.5 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | +-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+------+------+------+------+ | Gray | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.25 | 0.25 | 0.25 | 0.75 | 0.75 | 0.75 | +-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+------+------+------+------+ RGB models: HSV, HSL, HSI and HSY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ These are not included as their own color spaces in Krita. However, they do show up in the blending modes and color selectors, so a brief overview: --Images of relationship rgb-hsv etc. Hue The tint of a color, or, whether it's red, yellow, green, etc. Krita's Hue is measured in 360 degrees, with 0 being red, 120 being green and 240 being blue. Saturation - How vibrant a color is. Saturation is slightly different between HSV and the others. In HSV it's a measurement of the difference between two base colors being used and three base colors being used. In the others it's a measurement of how close a color is to grey, and sometimes this value is called **Chroma**. Saturation ranges from 0 (grey) to 100 (pure color). + How vibrant a color is. Saturation is slightly different between HSV and the others. In HSV it's a measurement of the difference between two base colors being used and three base colors being used. In the others it's a measurement of how close a color is to gray, and sometimes this value is called **Chroma**. Saturation ranges from 0 (gray) to 100 (pure color). Value Sometimes known as Brightness. Measurement of how much the pixel needs to light up. Also measured from 0 to 100. Lightness Where a color aligns between white and black. This value is non-linear, and puts all the most saturated possible colors at 50. Ranges from 0 to 100. Intensity Similar to lightness, except it acknowledges that yellow (1,1,0) is lighter than blue (0,0,1). Ranges from 0 to 100. Luma (Y') Similar to lightness and Intensity, except it weights the red, green and blue components based real-life measurements of how much light a color reflects to determine its lightness. Ranges from 0 to 100. Luma is well known for being used in film-color spaces. .. _model_gray: Grayscale --------- -This color space only registers grey-values. -This is useful, because by only registering grey values, it only needs one channel of information, which in turn means the image becomes much lighter in memory consumption! +This color space only registers gray values. +This is useful, because by only registering gray values, it only needs one channel of information, which in turn means the image becomes much lighter in memory consumption! This is useful for textures, but also anything else that needs to stay grayscale, like Black and White comics. +------+---------+---------+--------+----------+--------+ | | Color 1 | Color 2 | Normal | Multiply | Screen | +------+---------+---------+--------+----------+--------+ | | G | G | G | G | G | +======+=========+=========+========+==========+========+ | Gray | 0.5 | 0.5 | 0.5 | 0.25 | 0.75 | +------+---------+---------+--------+----------+--------+ .. _model_cmyk: CMYK ---- Cyan, Magenta, Yellow, Key This is the color space of printers. Unlike computers, printers have these four colors, and adding them all adds up to black instead of white. This is thus also called a 'subtractive' color space. +-------+-----------------------+-----------------------+-----------------------+--------------------------+--------------------------+ | | Color 1 | Color 2 | Normal | Multiply | Screen | +-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+------+------+------+-----+------+ | | C | M | Y | K | C | M | Y | K | C | M | Y | K | C | M | Y | K | C | M | Y | K | +=======+=====+=====+=====+=====+=====+=====+=====+=====+=====+=====+=====+=====+======+======+=====+======+======+======+=====+======+ | R & G | 0.0 | 1.0 | 1.0 | 0.0 | 1.0 | 0.0 | 1.0 | 0.0 | 0.5 | 0.5 | 1.0 | 0.0 | 0.25 | 0.25 | 1.0 | 0.0 | 0.75 | 0.75 | 1.0 | 0.0 | +-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+------+------+------+-----+------+ | Gray | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.0 | 0.0 | 0.25 | 0.0 | 0.0 | 0.0 | 0.75 | +-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+------+------+------+-----+------+ There's also a difference between 'colored gray' and 'neutral gray' depending on the profile. +--------------+---------------------------+-----------------------+---------------------------+ | | 25% | 50% | 75% | +--------------+------+------+------+------+-----+-----+-----+-----+------+------+------+------+ | | C | M | Y | K | C | M | Y | K | C | M | Y | K | +==============+======+======+======+======+=====+=====+=====+=====+======+======+======+======+ | Colored Gray | 0.25 | 0.25 | 0.25 | 0.25 | 0.5 | 0.5 | 0.5 | 0.5 | 0.75 | 0.75 | 0.75 | 0.75 | +--------------+------+------+------+------+-----+-----+-----+-----+------+------+------+------+ | Neutral Gray | 0.0 | 0.0 | 0.0 | 0.25 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.0 | 0.0 | 0.75 | +--------------+------+------+------+------+-----+-----+-----+-----+------+------+------+------+ .. figure:: /images/en/color_category/Cmyk_black_differences.png :figwidth: 500 :align: center In Krita, there's also the fact that the default color is a perfect black in RGB, which then gets converted to our default CMYK in a funny manner, giving a yellow look to the strokes. Again, another good reason to work in RGB and let the conversion be done by the printing house. While CMYK has a smaller 'gamut' than RGB, however, it's still recommended to use an RGB working space profile to do your editing in. Afterwards, you can convert it to your printer's CMYK profile using either perceptual or relative colorimetric intent. Or you can just give the workspace rgb image to your printer and let them handle the work. .. _model_ycrcb: YCrCb ----- Luminosity, Red-chroma, Blue-chroma YCrCb stands for Y'/Y Luma/Luminosity, thus, the amount of light a color reflects. Cr Red Chroma. This value measures how red a color is versus how green it is. Cb Blue Chroma. This value measures how blue a color is versus how yellow it is. This color space is often used in photography and in (correct) implementations of JPEG. As a human you're much more sensitive to the lightness of colors, and thus JPEG tries to compress the Cr and Cb channels, and leave the Y channel in full quality. .. warning:: Krita doesn't bundle a ICC profile for YCrCb on the basis of there being no open source ICC profiles for this color space. It's unusable without one, and also probably very untested. .. _model_xyz: XYZ ~~~ Back in 1931, the CIE (Institute of Color and Light), was studying human color perception. In doing so, they made the first color spaces, with XYZ being the one best at approximating human vision. It's almost impossible to really explain what XYZ is. Y is equal to green. Z akin to blue. X is supposed to be red. XYZ is used as a baseline reference for all other profiles and models. All color conversions are done in XYZ, and all profiles coordinates match XYZ. .. _model_lab: L\*a\*b\* ~~~~~~~~~ Stands for: L\* Lightness, similar to luminosity in this case. a\* a\* in this case is the measurement of how magenta a color is versus how green it is. b\* b\* in this case is a measurement of how yellow a color is versus how blue a color is. L\*a\*b\* is supposed to be a more comprehensible variety of XYZ and the most 'complete' of all color spaces. It's often used as an in between color space in conversion, but even more as the correct color space to do color-balancing in. It's far easier to adjust the contrast and color tone in L*a*b*. L\*a\*b\* is technically the same as Photoshop's LAB. Photoshop specifically uses CIELAB d50. Filters and blending modes -------------------------- Maybe you have noticed that blending modes in LAB don't work like they do in RGB or CMYK. This is because the blending modes work by doing a bit of maths on the color coordinates, and because color coordinates are different per color space, the blending modes look different. diff --git a/general_concepts/colors/linear_and_gamma.rst b/general_concepts/colors/linear_and_gamma.rst index 9b27a88c2..c1e6eec86 100644 --- a/general_concepts/colors/linear_and_gamma.rst +++ b/general_concepts/colors/linear_and_gamma.rst @@ -1,122 +1,122 @@ .. meta:: :description: The effect of gamma and linear. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - MicahB :license: GNU free documentation license 1.3 or later. .. index:: Gamma, Linear Color Space, Linear, Tone Response curve, EOTF, Transfer Curve .. _gamma_and_linear: .. _linear_and_gamma: ================ Gamma and Linear ================ Now, the situation we talk about when talking theory is what we would call 'linear'. Each step of brightness is the same value. -Our eyes do not perceive linearly. Rather, we find it more easy to distinguish between darker greys than we do between lighter greys. +Our eyes do not perceive linearly. Rather, we find it more easy to distinguish between darker grays than we do between lighter grays. As humans are the ones using computers, we have made it so that computers will give more room to darker values in the coordinate system of the image. We call this 'gamma-encoding', because it is applying a gamma function to the TRC or transfer function of an image. The TRC in this case being the Tone Response Curve or Tone Reproduction Curve or Transfer function (because color management specialists hate themselves), which tells your computer or printer how much color corresponds to a certain value. .. figure:: /images/en/color_category/Pepper_tonecurves.png :align: center :figwidth: 800 One of the most common issues people have with Krita's color management is the assigning of the right colorspace to the encoded TRC. Above, the center Pepper is the right one, where the encoded and assigned TRC are the same. To the left we have a Pepper encoded in sRGB, but assigned a linear profile, and to the right we have a Pepper encoded with a linear TRC and assigned an sRGB TRC. Image from `Pepper & Carrot `_ The following table shows how there's a lot of space being used by lighter values in a linear space compared to the default sRGB TRC of our modern computers and other TRCs available in our delivered profiles: .. image:: /images/en/color_category/trc_gray_gradients.svg :align: center If you look at linear of rec 709 TRCs, you can see there's quite a jump between the darker shades and the lighter shades, while if we look at the Lab L* TRC or the sRGB TRC, which seem more evenly spaced. This is due to our eyes' sensitivity to darker values. This also means that if you do not have enough bit depth, an image in a linear space will look as if it has ugly banding. Hence why, when we make images for viewing on a screen, we always use something like the LAB L\*, sRGB or Gamma 2.2 TRCs to encode the image with. However, this modification to give more space to darker values does lead to wonky color maths when mixing the colors. We can see this with the following experiment: .. figure:: /images/en/color_category/Krita_2_9_colormanagement_blending_1.png :figwidth: 500 :align: center **Left:** Colored circles blurred in a regular sRGB space. **Right:** Colored circles blurred in a linear space. Colored circles, half blurred. In a gamma-corrected environment, this gives an odd black border. In a linear environment, this gives us a nice gradation. This also counts for Krita's color smudge brush: .. figure:: /images/en/color_category/Krita_2_9_colormanagement_blending_2.png :figwidth: 500 :align: center That's right, the 'muddying' of colors as is a common complaint by digital painters everywhere, is in fact, a gamma-corrected colorspace mucking up your colors. If you had been working in LAB to avoid this, be sure to try out a linear rgb color space. What is happening under the hood -------------------------------- Imagine we want to mix red and green. First, we would need the color coordinates of red and green inside our color space's color model. So, that'd be... ===== === ===== ==== Color Red Green Blue ===== === ===== ==== Red 1.0 0.0 0.0 Green 0.0 1.0 0.0 ===== === ===== ==== We then average these coordinates over three mixes: +-------+-----+------+------+------+-------+ | | Red | Mix1 | Mix2 | Mix3 | Green | +=======+=====+======+======+======+=======+ | Red | 1.0 | 0.75 | 0.5 | 0.25 | 0.0 | +-------+-----+------+------+------+-------+ | Green | 0.0 | 0.25 | 0.5 | 0.75 | 1.0 | +-------+-----+------+------+------+-------+ | Blue | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | +-------+-----+------+------+------+-------+ But to figure out how these colors look on screen, we first put the individual values through the TRC of the color-space we're working with: .. image:: /images/en/color_category/Basicreading3trcsv2.svg :width: 800 :align: center Then we fill in the values into the correct spot. Compare these to the values of the mixture table above! .. image:: /images/en/color_category/red_green_mixes_trc.svg :align: center And this is why color mixtures are lighter and softer in linear space. Linear space is more physically correct, but sRGB is more efficient in terms of space, so hence why many images have an sRGB TRC encoded into them. In case this still doesn't make sense: *sRGB gives largely* **darker** *values than linear space for the same coordinates.* So different TRCs give different mixes between colors, in the following example, every set of gradients is in order a mix using linear TRC, a mix using sRGB TRC and a mix using LAB L* TRC. .. image:: /images/en/color_category/3trcsresult.png :width: 800 :align: center So, you might be asking, how do I tick this option? Is it in the settings somewhere? The answer is that we have several ICC profiles that can be used for this kind of work: * scRGB (linear) * All 'elle'-profiles ending in 'g10', such as *sRGB-elle-v2-g10.icc*. In fact, in all the 'elle'-profiles, the last number indicates the gamma. 1.0 is linear, higher is gamma-corrected and 'srgbtrc' is a special gamma correction for the original sRGB profile. If you use the color space browser, you can tell the TRC from the 'estimated gamma'(if it's 1.0, it's linear), or from the TRC widget in Krita 3.0, which looks exactly like the curve graphs above. Even if you do not paint much, but are for example making textures for a videogame or rendering, using a linear space is very beneficial and will speed up the renderer a little, for it won't have to convert images on its own. -The downside of linear space is of course that white seems very overpowered when mixing with black, because in a linear space, light greys get more room. In the end, while linear space is physically correct, and a boon to work in when you are dealing with physically correct renderers for videogames and raytracing, Krita is a tool and no-one will hunt you down for preferring the dark mixing of the sRGB TRC. +The downside of linear space is of course that white seems very overpowered when mixing with black, because in a linear space, light grays get more room. In the end, while linear space is physically correct, and a boon to work in when you are dealing with physically correct renderers for videogames and raytracing, Krita is a tool and no-one will hunt you down for preferring the dark mixing of the sRGB TRC. diff --git a/general_concepts/colors/profiling_and_callibration.rst b/general_concepts/colors/profiling_and_callibration.rst index d6887fc25..c78925fcc 100644 --- a/general_concepts/colors/profiling_and_callibration.rst +++ b/general_concepts/colors/profiling_and_callibration.rst @@ -1,91 +1,91 @@ .. meta:: :description: Color Models in Krita .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - RNicole - Timothée Giet - Troy Sobotka :license: GNU free documentation license 1.3 or later. .. index:: Color, Profiling, Calibration .. _profiling_and_calibration: ========================== Profiling and Calibration ========================== So to make it simple, a color profile is just a file defining a set of colors inside a pure XYZ color cube. This "color set" can be used to define different things: * the colors inside an image * the colors a device can output Choosing the right workspace profile to use depends on how much colors you need and on the bit depth you plan to use. Imagine a line with the whole color spectrum from pure black (0,0,0) to pure blue (0,0,1) in a pure XYZ color cube. If you divide it choosing steps at a regular interval, you get what is called a linear profile, with a gamma=1 curve represented as a straight line from 0 to 1. With 8bit/channel bit depth, we have only 256 values to store this whole line. If we use a linear profile as described above to define those color values, we will miss some important visible color change steps and have a big number of values looking the same (leading to posterization effect). This is why was created the sRGB profile to fit more different colors in this limited amount of values, in a perceptually regular grading, by applying a custom gamma curve (see picture here: http://en.wikipedia.org/wiki/SRGB) to emulate the standard response curve of old CRT screens. So sRGB profile is optimized to fit all colors that most common screen can reproduce in those 256 values per R/G/B channels. Some other profiles like Adobe RGB are optimized to fit more printable colors in this limited range, primarily extending cyan-green hues. Working with such profile can be useful to improve print results, but is dangerous if not used with a properly profiled and/or calibrated good display. Most common CMYK workspace profile can usually fit all their colors within 8bit/channel depth, but they are all so different and specific that it's usually better to work with a regular RGB workspace first and then convert the output to the appropriate CMYK profile. Starting with 16bit/channel, we already have 65536 values instead of 256, so we can use workspace profiles with higher gamut range like Wide-gamut RGB or Pro-photo RGB, or even unlimited gamut like scRGB. But sRGB being a generic profile (even more as it comes from old CRT specifications...), there are big chances that your monitor have actually a different color response curve, and so color profile. So when you are using sRGB workspace and have a proper screen profile loaded (see next point), Krita knows that the colors the file contains are within the sRGB color space, and converts those sRGB values to corresponding color values from your monitor profile to display the canvas. Note that when you export your file and view it in another software, this software has to do two things: * read the embed profile to know the "good" color values from the file (which most software do nowadays; when they don't they usually default to sRGB, so in the case described here we're safe ) * and then convert it to the profile associated to the monitor (which very few software actually does, and just output to sRGB.. so this can explain some viewing differences most of the time). Krita uses profiles extensively, and comes bundled with many. The most important one is the one of your own screen. It doesn't come bundled, and you have to make it with a color profiling device. In case you don't have access to such a device, you can't make use of Krita's color management as intended. However, Krita does allow the luxury of picking any of the other bundled profiles as working spaces. Profiling devices ----------------- Profiling devices, called Colorimeters, are tiny little cameras of a kind that you connect to your computer via an usb, and then you run a profiling software (often delivered alongside of the device). .. note:: If you don't have software packaged with your colorimeter, or are unhappy with the results, we recommend `Argyllcms `_ -The little camera then measures what the brightest red, green, blue, white and black are like on your screen using a predefined white as base. It also measures how grey the color grey is. +The little camera then measures what the brightest red, green, blue, white and black are like on your screen using a predefined white as base. It also measures how gray the color gray is. It then puts all this information into an ICC profile, which can be used by the computer to correct your colors. It's recommended not to change the "calibration" (contrast, brightness, you know the menu) of your screen after profiling. Doing so makes the profile useless, as the qualities of the screen change significantly while calibrating. To make your screen display more accurate colors, you can do one or two things: profile your screen or calibrate and profile it. Just profiling your screen means measuring the colors of your monitor with its native settings and put those values in a color profile, which can be used by color-managed application to adapt source colors to the screen for optimal result. Calibrating and profiling means the same except that first you try to calibrate the screen colors to match a certain standard setting like sRGB or other more specific profiles. Calibrating is done first with hardware controls (lightness, contrast, gamma curves), and then with software that creates a vcgt (video card gamma table) to load in the GPU. So when or why should you do just one or both? Profiling only: with a good monitor you can get most of the sRGB colors and lot of extra colors not inside sRGB. So this can be good to have more visible colors. with a bad monitor you will get just a subset of actual sRGB, and miss lot of details, or even have hue shifts. Trying to calibrate it before profiling can help to get closer to full-sRGB colors. Calibration+profiling: bad monitors as explained just before. multi-monitor setup when using several monitors, and specially in mirror mode where both monitor have the same content, you can't have this content color-managed for both screen profiles. In such case, calibrating both screens to match sRGB profile (or another standard for high-end monitors if they both support it) can be a good solution. soft-proofing when you need to match an exact rendering context for soft-proofing, calibrating can help getting closer to the expected result. Though switching through several monitor calibration and profiles should be done extremely carefully. diff --git a/general_concepts/colors/viewing_conditions.rst b/general_concepts/colors/viewing_conditions.rst index d0127c8c4..3f90d1cec 100644 --- a/general_concepts/colors/viewing_conditions.rst +++ b/general_concepts/colors/viewing_conditions.rst @@ -1,93 +1,93 @@ .. meta:: :description: What are viewing conditions. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier :license: GNU free documentation license 1.3 or later. .. index:: Viewing Conditions, Metamerism, Color .. _viewing_conditions: ================== Viewing Conditions ================== We mentioned viewing conditions before, but what does this have to do with 'white points'? A lot actually, rather, white points describe a type of viewing condition. So, usually what we mean by viewing conditions is the lighting and decoration of the room that you are viewing the image in. Our eyes try to make sense of both the colors that you are looking at actively (the colors of the image) and the colors you aren't looking at actively (the colors of the room), which means that both sets of colors affect how the image looks. .. figure:: /images/en/color_category/Meisje_met_de_parel_viewing.png :figwidth: 800 :align: center **Left**: Let's ruin Vermeer by putting a bright purple background that asks for more attention than the famous painting itself. **Center**: a much more neutral backdrop that an interior decorator would hate but brings out the colors. **Right**: The approximate color that this painting is displayed against in real life in the Maurits House, at the least, last time I was there. Original image from wikipedia commons. This is for example, the reason why museum exhibitioners can get really angry at the interior decorators when the walls of the museum are painted bright red or blue, because this will drastically change the way how the painting's colors look. (Which, if we are talking about a painter known for their colors like Vermeer, could result in a really bad experience). .. figure:: /images/en/color_category/Krita_example_metamerism.png :figwidth: 500 :align: center Lighting is the other component of the viewing condition which can have dramatic effects. Lighting in particular affects the way how all colors look. For example, if you were to paint an image of sunflowers and poppies, print that out, and shine a bright yellow light on it, the sunflowers would become indistinguishable from the white background, and the poppies would look orange. This is called `metamerism `_, and it's generally something you want to avoid in your color management pipeline. An example where metamerism could become a problem is when you start matching colors from different sources together. .. figure:: /images/en/color_category/White_point_mix_up_ex1_01.svg :figwidth: 500 :align: center -For example, if you are designing a print for a red t-shirt that's not bright red, but not super greyish red either. And you want to make sure the colors of the print match the color of the t-shirt, so you make a dummy background layer that is approximately that red, as correctly as you can observe it, and paint on layers above that dummy layer. When you are done, you hide this dummy layer and sent the image with a transparent background to the press. +For example, if you are designing a print for a red t-shirt that's not bright red, but not super grayish red either. And you want to make sure the colors of the print match the color of the t-shirt, so you make a dummy background layer that is approximately that red, as correctly as you can observe it, and paint on layers above that dummy layer. When you are done, you hide this dummy layer and sent the image with a transparent background to the press. .. figure:: /images/en/color_category/White_point_mixup_ex1_02.png :figwidth: 300 :align: center But when you get the t-shirt from the printer, you notice that all your colors look off, mismatched, and maybe too yellowish (and when did that T-Shirt become purple?). This is where white points come in. You probably observed the t-shirt in a white room where there were incandescent lamps shining, because as a true artist, you started your work in the middle of the night, as that is when the best art is made. However, incandescent lamps have a black body temperature of roughly 2300-2800K, which makes them give a yellowish light, officially called White Point A. Your computer screen on the other hand, has a black body temperature of 6500K, also known as D65. Which is a far more blueish color of light than the lamps you are hanging. What's worse, Printers print on the basis of using a white point of D50, the color of white paper under direct sunlight. .. figure:: /images/en/color_category/White_point_mix_up_ex1_03.svg :figwidth: 500 :align: center So, by eye-balling your t-shirt's color during the evening, you took its red color as transformed by the yellowish light. Had you made your observation in diffuse sunlight of an overcast (which is also roughly D65), or made it in direct sunlight light and painted your picture with a profile set to D50, the color would have been much closer, and thus your design would not be as yellowish. .. figure:: /images/en/color_category/White_point_mixup_ex1_03.png :figwidth: 500 :align: center Applying a white balance filter will sort of match the colors to the tone as in the middle, but you would have had a much better design had you designed against the actual color to begin with. Now, you could technically quickly fix this by using a white balancing filter, like the ones in G'MIC, but because this error is caught at the end of the production process, you basically limited your use of possible colors when you were designing, which is a pity. Another example where metamerism messes things up is with screen projections. We have a presentation where we mark one type of item with red, another with yellow and yet another with purple. On a computer the differences between the colors are very obvious. .. figure:: /images/en/color_category/Krita_metamerism_presentation.svg :figwidth: 800 :align: center However, when we start projecting, the lights of the room aren't dimmed, which means that the tone scale of the colors becomes crunched, and yellow becomes near indistinguishable from white. Furthermore, because the light in the room is slightly yellowish, the purple is transformed into red, making it indistinguishable from the red. Meaning that the graphic is difficult to read. In both cases, you can use Krita's color management a little to help you, but mostly, you just need to be ''aware'' of it, as Krita can hardly fix that you are looking at colors at night, or the fact that the presentation hall owner refuses to turn off the lights. That said, unless you have a display profile that uses LUTs, such as an OCIO LUT or a cLUT icc profile, white point won't matter much when choosing a working space, due to weirdness in the icc v4 workflow which always converts matrix profiles with relative colorimetric, meaning the white points are matched up. diff --git a/general_concepts/file_formats/lossy_lossless.rst b/general_concepts/file_formats/lossy_lossless.rst index 669d06922..2fb6b0e89 100644 --- a/general_concepts/file_formats/lossy_lossless.rst +++ b/general_concepts/file_formats/lossy_lossless.rst @@ -1,38 +1,38 @@ .. meta:: :description: The difference between lossy and lossless compression. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier :license: GNU free documentation license 1.3 or later. .. index:: lossy, lossless, compression .. _lossy_compression: .. _lossless_compression: ==================================== Lossy and Lossless Image Compression ==================================== When we compress a file, we do this because we want to temporarily make it smaller (like for sending over email), or we want to permanently make it smaller (like for showing images on the internet). *Lossless* compression techniques are for when we want to *temporarily* reduce information. As the name implies, they compress without losing information. In text, the use of abbreviations is a good example of a lossless compression technique. Everyone knows 'etc.' expands to 'etcetera', meaning that you can half the 8 character long 'etcetera' to the four character long 'etc.'. Within image formats, examples of such compression is by for example 'indexed' color, where we make a list of available colors in an image, and then assign a single number to them. Then, when describing the pixels, we only write down said number, so that we don't need to write the color definition over and over. *Lossy* compression techniques are for when we want to *permanently* reduce the file size of an image. This is necessary for final products where having a small filesize is preferable such as a website. That the image will not be edited anymore after this allows for the use of the context of a pixel to be taken into account when compressing, meaning that we can rely on psychological and statistical tricks. -One of the primary things JPEG for example does is chroma sub-sampling, that is, to split up the image into a greyscale and two color versions (one containing all red-green contrast and the other containing all blue-yellow contrast), and then it makes the latter two versions smaller. This works because humans are much more sensitive to differences in lightness than we are to differences in hue and saturation. +One of the primary things JPEG for example does is chroma sub-sampling, that is, to split up the image into a grayscale and two color versions (one containing all red-green contrast and the other containing all blue-yellow contrast), and then it makes the latter two versions smaller. This works because humans are much more sensitive to differences in lightness than we are to differences in hue and saturation. Another thing it does is to use cosine waves to describe contrasts in an image. What this means is that JPEG and other lossy formats using this are *very good at describing gradients, but not very good at describing sharp contrasts*. Conversely, lossless image compression techniques are *really good at describing images with few colors thus sharp contrasts, but are not good to compress images with a lot of gradients*. Another big difference between lossy and lossless images is that lossy file formats will degrade if you re-encode them, that is, if you load a jpeg into Krita edit a little, resave, edit a little, resave, each subsequent save will lose some data. This is a fundamental part of lossy image compression, and the primary reason we use working files. .. seealso:: If you're interested in different compression techniques, `Wikipedia's page(s) on image compression `_ are very good, if not a little technical. diff --git a/reference_manual/blending_modes/arithmetic.rst b/reference_manual/blending_modes/arithmetic.rst index 2fa76fc78..a5b7e1420 100644 --- a/reference_manual/blending_modes/arithmetic.rst +++ b/reference_manual/blending_modes/arithmetic.rst @@ -1,172 +1,172 @@ .. meta:: :description lang=en: Page about the arithmetic blending modes in Krita: Addition, Divide, Inverse Subtract, Multiply and Subtract. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Maria Luisac :license: GNU free documentation license 1.3 or later. .. _bm_cat_arithmetic: Arithmetic ---------- These blending modes are based on simple maths. .. index:: Addition(Blending Mode) .. _bm_addition: Addition ~~~~~~~~ Adds the numerical values of two colors together: Yellow(1, 1, 0) + Blue(0, 0, 1) = White(1, 1, 1) Darker Gray(0.4, 0.4, 0.4) + Lighter Gray(0.5, 0.5, 0.5) = Even Lighter Gray (0.9, 0.9, 0.9) .. figure:: /images/blending_modes/Blending_modes_Addition_Gray_0.4_and_Gray_0.5_n.png :align: center Left: **Normal**. Right: **Addition**. Light Blue(0.1608, 0.6274, 0.8274) + Orange(1, 0.5961, 0.0706) = (1.1608, 1.2235, 0.8980) → Very Light Yellow(1, 1, 0.8980) .. figure:: /images/blending_modes/Blending_modes_Addition_Light_blue_and_Orange.png :align: center Left: **Normal**. Right: **Addition**. -Red(1, 0, 0) + Grey(0.5, 0.5, 0.5) = Pink(1, 0.5, 0.5) +Red(1, 0, 0) + Gray(0.5, 0.5, 0.5) = Pink(1, 0.5, 0.5) .. figure:: /images/blending_modes/Blending_modes_Addition_Red_plus_gray.png :align: center Left: **Normal**. Right: **Addition**. When the result of the addition is more than 1, white is the color displayed. Therefore, white plus any other color results in white. On the other hand, black plus any other color results in the added color. .. figure:: /images/blending_modes/Blending_modes_Addition_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Addition**. .. _bm_divide: Divide ~~~~~~ Divides the numerical value from the lower color by the upper color. Red(1, 0, 0) / Gray(0.5, 0.5, 0.5) = (2, 0, 0) → Red(1, 0, 0) Darker Gray(0.4, 0.4, 0.4) / Lighter Gray(0.5, 0.5, 0.5) = Even Lighter Gray (0.8, 0.8, 0.8) .. figure:: /images/blending_modes/Blending_modes_Divide_Gray_0.4_and_Gray_0.5_n.png :align: center Left: **Normal**. Right: **Divide**. Light Blue(0.1608, 0.6274, 0.8274) / Orange(1, 0.5961, 0.0706) = (0.1608, 1.0525, 11.7195) → Aqua(0.1608, 1, 1) .. figure:: /images/blending_modes/Blending_modes_Divide_Light_blue_and_Orange.png :align: center Left: **Normal**. Right: **Divide**. .. figure:: /images/blending_modes/Blending_modes_Divide_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Divide**. .. _bm_inverse_subtract: Inverse Subtract ~~~~~~~~~~~~~~~~ This inverts the lower layer before subtracting it from the upper layer. Lighter Gray(0.5, 0.5, 0.5)_(1_Darker Gray(0.4, 0.4, 0.4)) = (-0.1, -0.1, -0.1) → Black(0, 0, 0) .. figure:: /images/blending_modes/Blending_modes_Inverse_Subtract_Gray_0.4_and_Gray_0.5_n.png :align: center Left: **Normal**. Right: **Inverse Subtract**. Orange(1, 0.5961, 0.0706)_(1_Light Blue(0.1608, 0.6274, 0.8274)) = (0.1608, 0.2235, -0.102) → Dark Green(0.1608, 0.2235, 0) .. figure:: /images/blending_modes/Blending_modes_Inverse_Subtract_Light_blue_and_Orange.png :align: center Left: **Normal**. Right: **Inverse Subtract**. .. figure:: /images/blending_modes/Blending_modes_Inverse_Subtract_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Inverse Subtract**. .. _bm_multiply: Multiply ~~~~~~~~ Multiplies the two colors with each other, but does not go beyond the upper limit. This is often used to color in a black and white lineart. One puts the black and white lineart on top, and sets the layer to 'Multiply', and then draw in color on a layer beneath. Multiply will all the color to go through. White(1,1,1) x White(1, 1, 1) = White(1, 1, 1) -White(1, 1, 1) x Grey(0.5, 0.5, 0.5) = Grey(0.5, 0.5, 0.5) +White(1, 1, 1) x Gray(0.5, 0.5, 0.5) = Gray(0.5, 0.5, 0.5) Darker Gray(0.4, 0.4, 0.4) x Lighter Gray(0.5, 0.5, 0.5) = Even Darker Gray (0.2, 0.2, 0.2) .. figure:: /images/blending_modes/Blending_modes_Multiply_Gray_0.4_and_Gray_0.5_n.png :align: center Left: **Normal**. Right: **Multiply**. Light Blue(0.1608, 0.6274, 0.8274) x Orange(1, 0.5961, 0.0706) = Green(0.1608, 0.3740, 0.0584) .. figure:: /images/blending_modes/Blending_modes_Multiply_Light_blue_and_Orange.png :align: center Left: **Normal**. Right: **Multiply**. .. figure:: /images/blending_modes/Blending_modes_Multiply_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Multiply**. .. _bm_subtract: Subtract ~~~~~~~~ Subtracts the top layer from the bottom layer. White(1, 1, 1)_White(1, 1, 1) = Black(0, 0, 0) -White(1, 1, 1)_Grey(0.5, 0.5, 0.5) = Grey(0.5, 0.5, 0.5) +White(1, 1, 1)_Gray(0.5, 0.5, 0.5) = Gray(0.5, 0.5, 0.5) Darker Gray(0.4, 0.4, 0.4)_Lighter Gray(0.5, 0.5, 0.5) = (-0.1, -0.1, -0.1) → Black(0, 0, 0) .. figure:: /images/blending_modes/Blending_modes_Subtract_Gray_0.4_and_Gray_0.5_n.png :align: center Left: **Normal**. Right: **Subtract**. Light Blue(0.1608, 0.6274, 0.8274) - Orange(1, 0.5961, 0.0706) = (-0.8392, 0.0313, 0.7568) → Blue(0, 0.0313, 0.7568) .. figure:: /images/blending_modes/Blending_modes_Subtract_Light_blue_and_Orange.png :align: center Left: **Normal**. Right: **Subtract**. .. figure:: /images/blending_modes/Blending_modes_Subtract_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Subtract**. diff --git a/reference_manual/blending_modes/hsx.rst b/reference_manual/blending_modes/hsx.rst index f2e562071..a592e3a9c 100644 --- a/reference_manual/blending_modes/hsx.rst +++ b/reference_manual/blending_modes/hsx.rst @@ -1,370 +1,370 @@ .. meta:: :description: Page about the HSX blending modes in Krita, amongst which Hue, Color, Luminosity and Saturation. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Maria Luisac :license: GNU free documentation license 1.3 or later. .. index:: Hue, Saturation, Lightness, Luma, Luminosity, Intensity, Value, Brightness .. _bm_cat_hsx: HSX --- Krita has four different HSX coordinate systems. The difference between them is how they handle tone. HSI ~~~ HSI is a color coordinate system, using Hue, Saturation and Intensity to categorize a color. Hue is roughly the wavelength, whether the color is red, yellow, green, cyan, blue or purple. It is measure in 360°, with 0 being red. -Saturation is the measurement of how close a color is to grey. +Saturation is the measurement of how close a color is to gray. Intensity, in this case is the tone of the color. What makes intensity special is that it recognizes yellow (rgb:1,1,0) having a higher combined rgb value than blue (rgb:0,0,1). This is a non-linear tone dimension, which means it's gamma-corrected. HSL ~~~ HSL is also a color coordinate system. It describes colors in Hue, Saturation and Lightness. -Lightness specifically puts both yellow (rgb:1,1,0), blue (rgb:0,0,1) and middle grey (rgb:0.5,0.5,0.5) at the same lightness (0.5). +Lightness specifically puts both yellow (rgb:1,1,0), blue (rgb:0,0,1) and middle gray (rgb:0.5,0.5,0.5) at the same lightness (0.5). HSV ~~~ HSV, occasionally called HSB, is a color coordinate system. It measures colors in Hue, Saturation, and Value (also called Brightness). Value or Brightness specifically refers to strength at which the pixel-lights on your monitor have to shine. It sets Yellow (rgb:1,1,0), Blue (rgb:0,0,1) and White (rgb:1,1,0) at the same Value (100%) HSY ~~~ HSY is a color coordinate system. It categorizes colors in Hue, Saturation and Luminosity. Well, not really, it uses Luma instead of true luminosity, the difference being that Luminosity is linear while Luma is gamma-corrected and just weights the rgb components. Luma is based on scientific studies of how much light a color reflects in real-life. While like intensity it acknowledges that yellow (rgb:1,1,0) is lighter than blue (rgb:0,0,1), it also acknowledges that yellow (rgb:1,1,0) is lighter than cyan (rgb:0,1,1), based on these studies. HSX Blending Modes ~~~~~~~~~~~~~~~~~~ .. _bm_color: .. _bm_hsv_color: .. _bm_hsl_color: .. _bm_hsi_color: .. _bm_hsy_color: Color, HSV, HSI, HSL, HSY ^^^^^^^^^^^^^^^^^^^^^^^^^ This takes the Luminosity/Value/Intensity/Lightness of the colors on the lower layer, and combines them with the Saturation and Hue of the upper pixels. We refer to Color HSY as 'Color' in line with other applications. .. figure:: /images/blending_modes/Blending_modes_Color_HSI_Gray_0.4_and_Gray_0.5.png :align: center Left: **Normal**. Right: **Color HSI**. .. figure:: /images/blending_modes/Blending_modes_Color_HSI_Light_blue_and_Orange.png :align: center Left: **Normal**. Right: **Color HSI**. .. figure:: /images/blending_modes/Blending_modes_Color_HSI_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Color HSI**. .. figure:: /images/blending_modes/Blending_modes_Color_HSL_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Color HSL**. .. figure:: /images/blending_modes/Blending_modes_Color_HSV_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Color HSV**. .. figure:: /images/blending_modes/Blending_modes_Color_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Color**. .. _bm_hue: .. _bm_hsv_hue: .. _bm_hsl_hue: .. _bm_hsi_hue: .. _bm_hsy_hue: Hue HSV, HSI, HSL, HSY ^^^^^^^^^^^^^^^^^^^^^^ Takes the saturation and tone of the lower layer and combines them with the hue of the upper-layer. Tone in this case being either Value, Lightness, Intensity or Luminosity. .. figure:: /images/blending_modes/Blending_modes_Hue_HSI_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Hue HSI**. .. figure:: /images/blending_modes/Blending_modes_Hue_HSL_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Hue HSL**. .. figure:: /images/blending_modes/Blending_modes_Hue_HSV_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Hue HSV**. .. figure:: /images/blending_modes/Blending_modes_Hue_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Hue**. .. _bm_increase_value: .. _bm_increase_lightness: .. _bm_increase_intensity: .. _bm_increase_luminosity: Increase Value, Lightness, Intensity or Luminosity. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Similar to lighten, but specific to tone. Checks whether the upper layer's pixel has a higher tone than the lower layer's pixel. If so, the tone is increased, if not, the lower layer's tone is maintained. .. figure:: /images/blending_modes/Blending_modes_Increase_Intensity_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Increase Intensity**. .. figure:: /images/blending_modes/Blending_modes_Increase_Lightness_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Increase Lightness**. .. figure:: /images/blending_modes/Blending_modes_Increase_Value_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Increase Value**. .. figure:: /images/blending_modes/Blending_modes_Increase_Luminosity_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Increase Luminosity**. .. _bm_increase_saturation: .. _bm_increase_hsv_saturation: .. _bm_increase_hsl_saturation: .. _bm_increase_hsi_saturation: .. _bm_increase_hsy_saturation: Increase Saturation HSI, HSV, HSL, HSY ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Similar to lighten, but specific to Saturation. Checks whether the upper layer's pixel has a higher Saturation than the lower layer's pixel. If so, the Saturation is increased, if not, the lower layer's Saturation is maintained. .. figure:: /images/blending_modes/Blending_modes_Increase_Saturation_HSI_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Increase Saturation HSI**. .. figure:: /images/blending_modes/Blending_modes_Increase_Saturation_HSL_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Increase Saturation HSL**. .. figure:: /images/blending_modes/Blending_modes_Increase_Saturation_HSV_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Increase Saturation HSV**. .. figure:: /images/blending_modes/Blending_modes_Increase_Saturation_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Increase Saturation**. .. _bm_intensity: Intensity ^^^^^^^^^ Takes the Hue and Saturation of the Lower layer and outputs them with the intensity of the upper layer. .. figure:: /images/blending_modes/Blending_modes_Intensity_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Intensity**. .. _bm_value: Value ^^^^^ Takes the Hue and Saturation of the Lower layer and outputs them with the Value of the upper layer. .. figure:: /images/blending_modes/Blending_modes_Value_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Value**. .. _bm_lightness: Lightness ^^^^^^^^^ Takes the Hue and Saturation of the Lower layer and outputs them with the Lightness of the upper layer. .. figure:: /images/blending_modes/Blending_modes_Lightness_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Lightness**. .. _bm_luminosity: Luminosity ^^^^^^^^^^ As explained above, actually Luma, but called this way as it's in line with the terminology in other applications. Takes the Hue and Saturation of the Lower layer and outputs them with the Luminosity of the upper layer. The most preferred one of the four Tone blending modes, as this one gives fairly intuitive results for the Tone of a hue .. figure:: /images/blending_modes/Blending_modes_Luminosity_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Luminosity**. .. _bm_saturation: .. _bm_hsv_saturation: .. _bm_hsl_saturation: .. _bm_hsi_saturation: .. _bm_hsy_saturation: Saturation HSI, HSV, HSL, HSY ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Takes the Intensity and Hue of the lower layer, and outputs them with the HSI saturation of the upper layer. .. figure:: /images/blending_modes/Blending_modes_Saturation_HSI_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Saturation HSI**. .. figure:: /images/blending_modes/Blending_modes_Saturation_HSL_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Saturation HSL**. .. figure:: /images/blending_modes/Blending_modes_Saturation_HSV_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Saturation HSV**. .. figure:: /images/blending_modes/Blending_modes_Saturation_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Saturation**. .. _bm_decrease_value: .. _bm_decrease_lightness: .. _bm_decrease_intensity: .. _bm_decrease_luminosity: Decrease Value, Lightness, Intensity or Luminosity ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Similar to darken, but specific to tone. Checks whether the upper layer's pixel has a lower tone than the lower layer's pixel. If so, the tone is decreased, if not, the lower layer's tone is maintained. .. figure:: /images/blending_modes/Blending_modes_Decrease_Intensity_Gray_0.4_and_Gray_0.5.png :align: center Left: **Normal**. Right: **Decrease Intensity**. .. figure:: /images/blending_modes/Blending_modes_Decrease_Intensity_Light_blue_and_Orange.png :align: center Left: **Normal**. Right: **Decrease Intensity**. .. figure:: /images/blending_modes/Blending_modes_Decrease_Intensity_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Decrease Intensity**. .. figure:: /images/blending_modes/Blending_modes_Decrease_Lightness_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Decrease Lightness**. .. figure:: /images/blending_modes/Blending_modes_Decrease_Value_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Decrease Value**. .. figure:: /images/blending_modes/Blending_modes_Decrease_Luminosity_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Decrease Luminosity**. .. _bm_decrease_saturation: .. _bm_decrease_hsv_saturation: .. _bm_decrease_hsl_saturation: .. _bm_decrease_hsi_saturation: .. _bm_decrease_hsy_saturation: Decrease Saturation HSI, HSV, HSL, HSY ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Similar to darken, but specific to Saturation. Checks whether the upper layer's pixel has a lower Saturation than the lower layer's pixel. If so, the Saturation is decreased, if not, the lower layer's Saturation is maintained. .. figure:: /images/blending_modes/Blending_modes_Decrease_Saturation_HSI_Gray_0.4_and_Gray_0.5.png :align: center Left: **Normal**. Right: **Decrease Saturation HSI**. .. figure:: /images/blending_modes/Blending_modes_Decrease_Saturation_HSI_Light_blue_and_Orange.png :align: center Left: **Normal**. Right: **Decrease Saturation HSI**. .. figure:: /images/blending_modes/Blending_modes_Decrease_Saturation_HSI_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Decrease Saturation HSI**. .. figure:: /images/blending_modes/Blending_modes_Decrease_Saturation_HSL_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Decrease Saturation HSL**. .. figure:: /images/blending_modes/Blending_modes_Decrease_Saturation_HSV_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Decrease Saturation HSV**. .. figure:: /images/blending_modes/Blending_modes_Decrease_Saturation_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Decrease Saturation**. diff --git a/reference_manual/blending_modes/mix.rst b/reference_manual/blending_modes/mix.rst index 44d89d577..ec7e98735 100644 --- a/reference_manual/blending_modes/mix.rst +++ b/reference_manual/blending_modes/mix.rst @@ -1,212 +1,212 @@ .. meta:: :description: Page about the mix blending modes in Krita: Allanon, Alpha Darken, Behind, Erase, Geometric Mean, Grain Extract, Grain Merge, Greater, Hard Mix, Hard Overlay, Normal, Overlay and Parallel. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Maria Luisac :license: GNU free documentation license 1.3 or later. .. _bm_cat_mix: Mix --- .. index:: ! Allanon .. _bm_allanon: Allanon ~~~~~~~ Blends the upper layer as half-transparent with the lower. (It add the two layers together and then halves the value) .. figure:: /images/blending_modes/Blending_modes_Allanon_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Allanon**. .. index:: ! Alpha Darken .. _bm_alpha_darken: Alpha Darken ~~~~~~~~~~~~ As far as I can tell this seems to premultiply the alpha, as is common in some file-formats. .. figure:: /images/blending_modes/Blending_modes_Alpha_Darken_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Alpha Darken**. .. index:: ! Behind .. _bm_behind: Behind ~~~~~~ Does the opposite of normal, and tries to have the upper layer rendered below the lower layer. .. figure:: /images/blending_modes/Blending_modes_Behind_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Behind**. .. index:: ! Erase (Blending Mode) .. _bm_erase: Erase ~~~~~ This subtracts the opaque pixels of the upper layer from the lower layer, effectively erasing. .. figure:: /images/blending_modes/Blending_modes_Erase_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Erase**. .. index:: ! Geometric Mean .. _bm_geometric_mean: Geometric Mean ~~~~~~~~~~~~~~ This blending mode multiplies the top layer with the bottom, and then outputs the square root of that. .. figure:: /images/blending_modes/Blending_modes_Geometric_Mean_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Geometric Mean**. .. index:: ! Grain Extract .. _bm_grain_extract: Grain Extract ~~~~~~~~~~~~~ -Similar to subtract, the colors of the upper layer are subtracted from the colors of the lower layer, and then 50% grey is added. +Similar to subtract, the colors of the upper layer are subtracted from the colors of the lower layer, and then 50% gray is added. .. figure:: /images/blending_modes/Blending_modes_Grain_Extract_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Grain Extract**. .. index:: ! Grain Merge .. _bm_grain_merge: Grain Merge ~~~~~~~~~~~ -Similar to addition, the colors of the upper layer are added to the colors, and then 50% grey is subtracted. +Similar to addition, the colors of the upper layer are added to the colors, and then 50% gray is subtracted. .. figure:: /images/blending_modes/Blending_modes_Grain_Merge_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Grain Merge**. .. index:: ! Greater (Blending Mode) .. _bm_greater: Greater ~~~~~~~ A blending mode which checks whether the painted color is painted with a higher opacity than the existing colors. If so, it paints over them, if not, it doesn't paint at all. .. image:: /images/blending_modes/Greaterblendmode.gif :align: center .. index:: ! Hard Mix .. _bm_hard_mix: Hard Mix ~~~~~~~~ Similar to Overlay. Mixes both Color Dodge and Burn blending modes. If the color of the upper layer is darker than 50%, the blending mode will be Burn, if not the blending mode will be Color Dodge. .. figure:: /images/blending_modes/Blending_modes_Hard_Mix_Sample_image_with_dots.png :figwidth: 800 :align: center Left: **Normal**. Right: **Hard Mix**. .. _bm_hard_mix_photoshop: Hard Mix (Photoshop) ~~~~~~~~~~~~~~~~~~~~ This is the hard mix blending mode as it is implemented in photoshop. .. figure:: /images/blending_modes/Krita_4_0_hard_mix_ps.png :figwidth: 800 :align: center **Left**: Dots are mixed in with the normal blending mode, on the **Right**: Dots are mixed in with hardmix. This add the two values, and then checks if the value is above the maximum. If so it will output the maximum, otherwise the minimum. .. index:: ! Hard OVerlay .. _bm_hard_overlay: Hard Overlay ~~~~~~~~~~~~ .. versionadded:: 4.0 Similar to Hard light but hard light use Screen when the value is above 50%. Divide gives better results than Screen, especially on floating point images. .. figure:: /images/blending_modes/Blending_modes_Hard_Overlay_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Hard Overlay**. .. index:: ! Normal (Blending Mode), Source Over .. _bm_normal: Normal ~~~~~~ As you may have guessed this is the default Blending mode for all layers. In this mode, the computer checks on the upper layer how transparent a pixel is, which color it is, and then mixes the color of the upper layer with the lower layer proportional to the transparency. .. figure:: /images/blending_modes/Blending_modes_Normal_50_Opacity_Sample_image_with_dots.png :align: center Left: **Normal** 100% Opacity. Right: **Normal** 50% Opacity. .. index:: ! Overlay (Blending Mode) .. _bm_overlay: Overlay ~~~~~~~ A combination of the Multiply and Screen blending modes, switching between both at a middle-lightness. Overlay checks if the color on the upperlayer has a lightness above 0.5. If so, the pixel is blended like in Screen mode, if not the pixel is blended like in Multiply mode. This is useful for deepening shadows and highlights. .. figure:: /images/blending_modes/Blending_modes_Overlay_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Overlay**. .. index:: ! Parallel .. _bm_parallel: Parallel ~~~~~~~~ This one first takes the percentage in two decimal behind the comma for both layers. It then adds the two values. Divides 2 by the sum. .. figure:: /images/blending_modes/Blending_modes_Parallel_Sample_image_with_dots.png :align: center Left: **Normal**. Right: **Parallel**. diff --git a/reference_manual/dockers/advanced_color_selector.rst b/reference_manual/dockers/advanced_color_selector.rst index 0e80fc25c..c5a18d715 100644 --- a/reference_manual/dockers/advanced_color_selector.rst +++ b/reference_manual/dockers/advanced_color_selector.rst @@ -1,155 +1,155 @@ .. meta:: :description: Overview of the advanced color selector docker. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Scott Petrovic :license: GNU free documentation license 1.3 or later. .. index:: Color, Color Selector, ! Advanced Color Selector .. _advanced_color_selector_docker: ======================= Advanced Color Selector ======================= .. image:: /images/en/Advancecolorselector.jpg As compared to other color selectors in Krita, Advanced color selector provides more control and options to the user. To open Advanced color selector choose :menuselection:`Settings --> Dockers --> Advanced Color Selector`. You can configure this docker by clicking on the little wrench icon on the top left corner. Clicking on the wrench will open a popup window with following tabs and options: Color Selector -------------- Here you configure the main selector. Type and Shape ~~~~~~~~~~~~~~ .. image:: /images/en/Krita_Color_Selector_Types.png Here you can pick the hsx model you'll be using. There's a small blurb explaining the characteristic of each model, but let's go into detail: HSV - Stands for Hue, Saturation, Value. Saturation determines the difference between white, grey, black and the most colorful color. Value in turn measures either the difference between black and white, or the difference between black and the most colorful color. + Stands for Hue, Saturation, Value. Saturation determines the difference between white, gray, black and the most colorful color. Value in turn measures either the difference between black and white, or the difference between black and the most colorful color. HSL - Stands for Hue, Saturation, Lightness. All saturated colors are equal to 50% lightness. Saturation allows for shifting between grey and color. + Stands for Hue, Saturation, Lightness. All saturated colors are equal to 50% lightness. Saturation allows for shifting between gray and color. HSI This stands for Hue, Saturation and Intensity. Unlike HSL, this one determine the intensity as the sum of total rgb components. Yellow (1,1,0) has higher intensity than blue (0,0,1) but is the same intensity as cyan (0,1,1). HSY' Stands for Hue, Saturation, Luma, with Luma being an RGB approximation of true luminosity. (Luminosity being the measurement of relative lightness). HSY' uses the Luma Coefficients, like `Rec 709 `_, to calculate the Luma. Due to this, HSY' can be the most intuitive selector to work with, or the most confusing. Then, under shape, you can select one of the shapes available within that color model. .. note:: Triangle is in all color models because to a certain extent, it is a wildcard shape: All color models look the same in an equilateral triangle selector. Luma Coefficients ~~~~~~~~~~~~~~~~~ This allows you to edit the Luma coefficients for the HSY model selectors to your leisure. Want to use `Rec 601 `_ instead of Rec 709? These boxes allow you to do that! By default, the Luma coefficients should add up to 1 at maximum. Gamma The HSY selector is linearised, this setting allows you to choose how much gamma is applied to the Luminosity for the gui element. 1.0 is fully linear, 2.2 is the default. Color Space ~~~~~~~~~~~ This allows you to set the overall color space for the Advanced Color Selector. .. warning:: You can pick only sRGB colors in advanced color selector regardless of the color space of advanced color selector. This is a bug. Behaviour --------- When docker resizes ~~~~~~~~~~~~~~~~~~~ This determines the behavior of the widget as it becomes smaller. Change to Horizontal This'll arrange the shade selector horizontal to the main selector. Only works with the MyPaint shade selector Hide Shade Selector This hides the shade selector. Do nothing Does nothing, just resizes. Zoom selector UI ~~~~~~~~~~~~~~~~ If your have set the docker size considerably smaller to save space, this option might be helpful to you. This allows you to set whether or not the selector will give a zoomed view of the selector in a size specified by you, you have these options for the zoom selector: * when pressing middle mouse button * on mouse over * never The size given here, is also the size of the Main Color Selector and the MyPaint Shade Selector when they are called with :kbd:`Shift + I` and :kbd:`Shift + M`, respectively. Hide Pop-up on click This allows you to let the pop-up selectors called with the above hotkeys to disappear upon clicking them instead of having to leave the pop-up boundary. This is useful for faster working. Shade selector -------------- Shade selector options. The shade selectors are useful to decide upon new shades of color. Update Selector ~~~~~~~~~~~~~~~ This allows you to determine when the shade selector updates. MyPaint Shade Selector ~~~~~~~~~~~~~~~~~~~~~~ Ported from MyPaint, and extended with all color models. Default hotkey is :kbd:`Shift+ M` Simple Shade Selector ~~~~~~~~~~~~~~~~~~~~~ This allows you to configure the simple shade selector in detail. Color Patches ------------- This sets the options of the color patches. Both Color History and Colors From the Image have similar options which will be explained below. Show This is a radio button to show or hide the section. It also determines whether or not the colors are visible with the advanced color selector docker. Size The size of the color boxes can be set here. Patch Count The number of patches to display. Direction The direction of the patches, Horizontal or Vertical. Allow Scrolling Whether to allow scrolling in the section or not when there are too many patches. Number of Columns/Rows The number of Columns or Rows to show in the section. Update After Every Stroke This is only available for Colors From the Image and tells the docker whether to update the section after every stroke or not, as after each stroke the colors will change in the image. History patches ~~~~~~~~~~~~~~~ The history patches remember which colors you've drawn on canvas with. They can be quickly called with :kbd:`H` Common Patches ~~~~~~~~~~~~~~ The common patches are generated from the image, and are the most common color in the image. The hotkey for them on canvas is :kbd:`U`. External Info ------------- `HSI and HSY for Krita’s advanced color selector. `_ diff --git a/reference_manual/dockers/artistic_color_selector.rst b/reference_manual/dockers/artistic_color_selector.rst index 4eab4fb43..d9f26bf55 100644 --- a/reference_manual/dockers/artistic_color_selector.rst +++ b/reference_manual/dockers/artistic_color_selector.rst @@ -1,43 +1,43 @@ .. meta:: :description: Overview of the artistic color selector docker. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Scott Petrovic :license: GNU free documentation license 1.3 or later. .. index:: Color, Color Selector, ! Artistic Color Selector .. _artistic_color_selector_docker: ============================ Artist Color Selector Docker ============================ .. image:: /images/en/Krita_Artistic_Color_Selector_Docker.png A round selector that tries to give you the tools to select colors ramps efficiently. Preference ---------- Set the color model used by the selector, as well as the amount of segments. Reset ----- Reset the selector to a default stage. Absolute -------- -This changes the algorithm around so it gives proper values for the grey. Without absolute, it'll use HSV values for grey to the corresponding hue and lightness. +This changes the algorithm around so it gives proper values for the gray. Without absolute, it'll use HSV values for gray to the corresponding hue and lightness. Usage ----- |mouseleft| the swatches to change the foreground color. Use |mouseright| + Drag to shift the alignment of the selector swatches within a specific saturation ring. Use |mouseleft| + Drag to shift the alignment of all swatches. This selector does not update on change of foreground color. diff --git a/reference_manual/dockers/channels_docker.rst b/reference_manual/dockers/channels_docker.rst index 82e3cb0c1..f53ea7dd7 100644 --- a/reference_manual/dockers/channels_docker.rst +++ b/reference_manual/dockers/channels_docker.rst @@ -1,45 +1,45 @@ .. meta:: :description: Overview of the channels docker. .. metadata-placeholder :authors: - Scott Petrovic :license: GNU free documentation license 1.3 or later. .. index:: Color, Color Channels .. _channels_docker: ======== Channels ======== .. image:: /images/en/Krita_Channels_Docker.png The channel docker allows you to turn on and off the channels associated with the color space that you are using. Each channel has an enabled and disabled checkbox. You cannot edit individual layer channels from this docker. Editing Channels ---------------- -If you want to edit individual channels by their greyscale component, you will need to manually separate a layer. This can be done with a series of commands with the layer docker. +If you want to edit individual channels by their grayscale component, you will need to manually separate a layer. This can be done with a series of commands with the layer docker. #. Select the layer you want to break apart. #. Go to :menuselection:`Image --> Separate Image` #. Select the following options and click :guilabel:`OK`: #. Source: Current Layer #. Alpha Options: Create separate separation from alpha channel - #. Output to Greyscale, not color: unchecked + #. Output to Grayscale, not color: unchecked #. Hide your original layer #. Select All of the new channel layers and put them in a group layer (:menuselection:`Layer --> Quick Group`) #. Select the Red layer and change the blending mode to "Copy Red" (these are in the Misc. category) #. Select the Green layer and change the blending mode to "Copy Green" #. Select the Blue layer and change the blending mode to "Copy Blue" #. Make sure the Alpha layer is at the bottom of the group. #. Enable Inherit Alpha for the Red, Green, and Blue layers. Here is a `video to see this process `_ in Krita 3.0 When working with editing channels, it can be easier to use the Isolate Layer feature to only see the channel. Right-click on the layer to find Isolate Layer. diff --git a/reference_manual/filters/adjust.rst b/reference_manual/filters/adjust.rst index b76f55a53..c84aa4443 100644 --- a/reference_manual/filters/adjust.rst +++ b/reference_manual/filters/adjust.rst @@ -1,196 +1,196 @@ .. meta:: :description: Overview of the adjust filters. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Raghavendra Kamath :license: GNU free documentation license 1.3 or later. .. index:: Filters .. _adjust_filters: ====== Adjust ====== The Adjustment filters are image-wide and are for manipulating colors and contrast. .. index:: Dodge Dodge ----- An image-wide dodge-filter. Dodge is named after a trick in traditional dark-room photography that gave the same results. .. image:: /images/en/Dodge-filter.png Shadows The effect will mostly apply to dark tones. Midtones The effect will apply to mostly midtones. Highlights This will apply the effect on the highlights only. Exposure The strength at which this filter is applied. .. index:: Burn Burn ---- An image-wide burn-filter. Burn is named after a trick in traditional dark-room photography that gave similar results. .. image:: /images/en/Burn-filter.png Shadows The effect will mostly apply to dark tones. Midtones The effect will apply to mostly midtones. Highlights This will apply the effect on the highlights only. Exposure The strength at which this filter is applied. .. index:: Levels Filter Levels ------ This filter allows you to directly modify the levels of the tone-values of an image, by manipulating sliders for highlights, midtones and shadows. You can even set an output and input range of tones for the image. A histogram is displayed to show you the tonal distribution. The default shortcut for levels filter is :kbd:`Ctrl + L` . .. image:: /images/en/Levels-filter.png -This is very useful to do an initial cleanup of scanned lineart or greyscale images. If the scanned lineart is light you can slide the black triangle to right to make it darker or if you want to remove the grey areas you can slide the white slider to left. +This is very useful to do an initial cleanup of scanned lineart or grayscale images. If the scanned lineart is light you can slide the black triangle to right to make it darker or if you want to remove the gray areas you can slide the white slider to left. Auto levels is a quick way to adjust tone of an image. If you want to change the settings later you can click on the :guilabel:`Create Filter Mask` button to add the levels as a filter mask. .. index:: Color Adjustment Curves, RGB Curves, Curves Filter Color Adjustment Curves ----------------------- This filter allows you to adjust each channel by manipulating the curves. You can even adjust the alpha channel and the lightness channel through this filter. This is used very often by artists as a post processing filter to slightly heighten the mood of the painting by adjust the overall color. For example a scene with fire breathing dragon may be made more red and yellow by adjusting the curves to give it more warmer look, similarly a snowy mountain scene can be made to look cooler by adjusting the blues and greens. The default shortcut for this filter is :kbd:`Ctrl + M`. .. versionchanged:: 4.1 Since 4.1 this filter can also handle Hue and Saturation curves. .. image:: /images/en/Color-adjustment-curve.png .. index:: ! Cross Channel Color Adjustment, Driving Adjustment by channel Cross-channel color adjustment ------------------------------ .. versionadded:: 4.1 Sometimes, when you are adjusting the colors for an image, you want bright colors to be more saturated, or have a little bit of brightness in the purples. The Cross-channel color adjustment filter allows you to do this. At the top, there are two drop-downs. The first one is to choose which :guilabel:`Channel` you wish to modify. The :guilabel:`Driver Channel` drop down is what channel you use to control which parts are modified. .. image:: /images/en/cross_channel_filter.png The curve, on the horizontal axis, represents the driver channel, while the vertical axis represent the channel you wish to modify. So if you wish to increase the saturation in the lighter parts, you pick :guilabel:`Saturation` in the first drop-down, and :guilabel:`Lightness` as the driver channel. Then, pull up the right end to the top. If you wish to desaturate everything but the teal/blues, you select :guilabel:`Saturation` for the channel and :guilabel:`Hue` for the driver. Then put a dot in the middle and pull down the dots on either sides. Brightness/Contrast curves -------------------------- This filter allows you to adjust the brightness and contrast of the image by adjusting the curves. .. deprecated:: 4.0 These have been removed in Krita 4.0, because the Color Adjustment filter can do the same. Old files with brightness/contrast curves will be loaded as Color Adjustment curves .. index:: ! Color Balance Color Balance ------------- This filter allows you to control the color balance of the image by adjusting the sliders for Shadows, Midtones and Highlights. The default shortcut for this filter is :kbd:`Ctrl + B` . .. image:: /images/en/Color-balance.png .. index:: Saturation, Desaturation, Gray Desaturate ---------- -Image-wide desaturation filter. Will make any image Greyscale. -Has several choices by which logic the colors are turned to grey. The default shortcut for this filter is :kbd:`Ctrl + Shift + U` . +Image-wide desaturation filter. Will make any image Grayscale. +Has several choices by which logic the colors are turned to gray. The default shortcut for this filter is :kbd:`Ctrl + Shift + U` . .. image:: /images/en/Desaturate-filter.png Lightness - This will turn colors to grey using the HSL model. + This will turn colors to gray using the HSL model. Luminosity (ITU-R BT.709) - Will turn the color to grey by using the appropriate amount of weighting per channel according to ITU-R BT.709. + Will turn the color to gray by using the appropriate amount of weighting per channel according to ITU-R BT.709. Luminosity (ITU-R BT.601) - Will turn the color to grey by using the appropriate amount of weighting per channel according to ITU-R BT.601. + Will turn the color to gray by using the appropriate amount of weighting per channel according to ITU-R BT.601. Average Will make an average of all channels. Min - Subtracts all from one another to find the grey value. + Subtracts all from one another to find the gray value. Max - Adds all channels together to get a grey-value + Adds all channels together to get a gray value .. index:: Invert, Negative Invert ------ This filter like the name suggests inverts the color values in the image. So white (1,1,1) becomes black (0,0,0), yellow (1,1,0) becomes blue (0,1,1), etc. The default shortcut for this filter is :kbd:`Ctrl + I`. .. index:: Contrast Auto Contrast ------------- Tries to adjust the contrast the universally acceptable levels. .. index:: Hue, Saturation, Lightness, Value, Brightness, Chroma HSV/HSL Adjustment ------------------ With this filter, you can adjust the Hue, Saturation, Value or Lightness, through sliders. The default shortcut for this filter is :kbd:`Ctrl + U` . .. image:: /images/en/Hue-saturation-filter.png .. index:: Threshold, Black and White Threshold --------- A simple black and white threshold filter that uses sRGB luminosity. It'll convert any image to a image with only black and white, with the input number indicating the threshold value at which black becomes white. .. index:: ASC CDL, Slope Offset Power Curves Slope, Offset, Power -------------------- A different kind of color balance filter, with three color selectors, which will have the same shape as the one used in settings. This filter is particular useful because it has been defined by the American Society for Cinema as "ASC_CDL", meaning that it is a standard way of describing a color balance method. .. image:: /images/en/Krita_filters_asc_cdl.png :width: 800 :align: center Slope This represents a multiplication and determine the adjustment of the brighter colors in an image. Offset This determines how much the bottom is offset from the top, and so determines the color of the darkest colors. Power This represents a power function, and determines the adjustment of the mid-tone to dark colors of an image. diff --git a/reference_manual/filters/artistic.rst b/reference_manual/filters/artistic.rst index 885e35e7a..4b7496fa4 100644 --- a/reference_manual/filters/artistic.rst +++ b/reference_manual/filters/artistic.rst @@ -1,84 +1,84 @@ .. meta:: :description: Overview of the artistic filters. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Raghavendra Kamath :license: GNU free documentation license 1.3 or later. .. index:: Filters, Halftone, HD Index Painting .. _artistic_filters: ======== Artistic ======== The artistic filter are characterised by taking an input, and doing a deformation on them. Halftone -------- .. image:: /images/en/Krita_halftone_filter.png The halftone filter is a filter that converts the colors to a halftone dot pattern. Colors The colors used to paint the pattern. The first is the color of the dots, the second the color of the background. Size The size of the cell in pixels. The maximum dot size will be using the diagonal as the cell size to make sure you can have pure black. Angle The angle of the dot pattern. Invert This inverts the intensity calculated per dot. Thus, dark colors will give tiny dots, and light colors big dots. This is useful in combination with inverting the colors, and give a better pattern on glowy-effects. Anti-aliasing This makes the dots smooth, which is good for webgraphics. Sometimes, for print graphics, we want there to be no grays, so we turn off the anti-aliasing. Index Color ----------- -The index color filter maps specific user selected colors to the grey scale value of the artwork. You can see the example below, the strip below the black and white gradient has index color applied to it so that the black and white gradient gets the color selected to different values. +The index color filter maps specific user selected colors to the grayscale value of the artwork. You can see the example below, the strip below the black and white gradient has index color applied to it so that the black and white gradient gets the color selected to different values. .. image:: /images/en/Gradient-pixelart.png You can choose the required colors and ramps in the index color filter dialog as shown below .. image:: /images/en/Index-color-filter.png You can create index painting such as one shown below with the help of this filter .. image:: /images/en/Kiki-pixel-art.png Pixelize -------- Makes the input-image pixely by creating small cells and inputting an average color. .. image:: /images/en/Pixelize-filter.png Raindrops --------- Adds random raindrop-deformations to the input-image. Oilpaint -------- Does semi-posterisation to the input-image, with the 'brush-size' determining the size of the fields. .. image:: /images/en/Oilpaint-filter.png Brush-size Determines how large the individual patches are. The lower, the more detailed. Smoothness Determines how much each patch's outline is smoothed out. Posterize --------- This filter decreases the amount of colors in an image. It does this per component (channel). .. image:: /images/en/Posterize-filter.png The :guilabel:`Steps` parameter determines how many colors are allowed per component. diff --git a/reference_manual/filters/colors.rst b/reference_manual/filters/colors.rst index 44755621a..c807cba18 100644 --- a/reference_manual/filters/colors.rst +++ b/reference_manual/filters/colors.rst @@ -1,60 +1,60 @@ .. meta:: :description: Overview of the color filters. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Raghavendra Kamath :license: GNU free documentation license 1.3 or later. .. index:: Filters .. _color_filters: ===== Color ===== Similar to the Adjust filters, the color filters are image wide color operations. .. index:: ! Color to Alpha .. _filter_color_to_alpha: Color to Alpha -------------- This filter allows you to make one single color transparent (alpha). By default when you run this filter white is selected, you can choose a color that you want to make transparent from the color selector .. image:: /images/en/Color-to-alpha.png The Threshold indicates how much other colors will be considered mixture of the removed color and non-removed colors. -For example, with threshold set to 255, and the removed color set to white, a 50% grey will be considered a mixture of black+white, and thus transformed in a 50% transparent black. +For example, with threshold set to 255, and the removed color set to white, a 50% gray will be considered a mixture of black+white, and thus transformed in a 50% transparent black. .. image:: /images/en/Krita-color-to-alpha.png :align: center This filter is really useful in separating line art from the white background. .. _filter_color_transfer: Color Transfer -------------- This filter converts the colors of the image to colors from the reference image. This is a quick way to change a color combination of an artwork to an already saved image or a reference image. .. image:: /images/en/Color-transfer.png .. _filter_maximize_channel: Maximize Channel ---------------- This filter checks for all the channels of a each single color and set all but the highest value to 0. .. _filter_minimize_channel: Minimize Channel ---------------- This is reverse to Maximize channel, it checks all the channels of a each single color and sets all but the lowest to 0. diff --git a/reference_manual/layers_and_masks/filter_masks.rst b/reference_manual/layers_and_masks/filter_masks.rst index 71879658e..1ece80aff 100644 --- a/reference_manual/layers_and_masks/filter_masks.rst +++ b/reference_manual/layers_and_masks/filter_masks.rst @@ -1,36 +1,36 @@ .. meta:: :description: How to use filter masks in Krita. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Scott Petrovic :license: GNU free documentation license 1.3 or later. .. index:: Layers, Masks, Filters .. _filter_masks: ============ Filter Masks ============ Filter masks show an area of their layer with a filter (such as blur, levels, brightness / contrast etc.). For example, if you select an area of a paint layer and add a Filter Layer, you will be asked to choose a filter. If you choose the blur filter, you will see the area you selected blurred. .. image:: /images/en/Krita_ghostlady_2.png :width: 800 :align: center With filter masks, we can for example make this ghost-lady more ethereal by putting a clone layer underneath, and setting a lens-blur filter on it. .. image:: /images/en/Krita_ghostlady_3.png :width: 800 :align: center Set the blending mode of the clone layer to :guilabel:`Color Dodge` and she becomes really spooky! Unlike applying a filter to a section of a paint layer directly, filter masks do not permanently alter the original image. This means you can tweak the filter (or the area it applies to) at any time. Changes can always be altered or removed. Unlike filter layers, filter masks apply only to the area you have selected (the mask). -You can edit the settings for a filter mask at any time by double clicking on it in the Layers docker. You can also change the selection that the filter mask affects by selecting the filter mask in the Layers docker and then using the paint tools in the main window. Painting white includes the area, painting black excludes it, and all other colors are turned into a shade of grey which applies proportionally. +You can edit the settings for a filter mask at any time by double clicking on it in the Layers docker. You can also change the selection that the filter mask affects by selecting the filter mask in the Layers docker and then using the paint tools in the main window. Painting white includes the area, painting black excludes it, and all other colors are turned into a shade of gray which applies proportionally. diff --git a/tutorials/common_workflows.rst b/tutorials/common_workflows.rst index 2f1793e1d..325693ed3 100644 --- a/tutorials/common_workflows.rst +++ b/tutorials/common_workflows.rst @@ -1,210 +1,210 @@ .. meta:: :description lang=en: Common workflows used in Krita .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Vancemoss - Raghavendra Kamath :license: GNU free documentation license 1.3 or later. .. _common_wokflows: ================ Common Workflows ================ Krita's main goal is to help artists create a digital painting from scratch. Krita is used by comic artists, matte painters, texture artists, and illustrators around the world. This section explains some common workflow that artists use in Krita. When you open a new document in Krita for the first time, you can start painting instantly. The brush tool is selected by default and you just have to paint on the canvas. However, let us look at what artists do in Krita. Below are some of the common workflows used in Krita: Speed Painting and Conceptualizing ---------------------------------- Some artists work only on the digital medium, sketching and visualizing concepts in Krita from scratch. As the name suggests a technique of painting done within a matter of hours to quickly visualize the basic scene, character, look and feel of the environment or to denote the general mood and overall concept is called a **speed painting**. Finishing and finer details are not the main goals of this type of painting, but the representation of form value and layout is the main goal. Some artists set a time limit to complete the painting while some paint casually. Speed painting then can be taken forward by adding finer details and polish to create a final piece. Generally, artists first block in the composition by adding patches and blobs of flat colors, defining the silhouette, etc. Krita has some efficient brushes for this situation, for example, the brush under **Block Tag** like Block fuzzy, Block basic, layout_block, etc. After the composition and a basic layout has been laid out the artists add as many details as possible in the given limited time, this requires a decent knowledge of forms, value perspective and proportions of the objects. Below is an example of speed paint done by `David Revoy `_ in an hours time. .. image:: /images/en/Pepper-speedpaint-deevad.jpg :alt: speedpaint of pepper and carrot by deevad (David Revoy) :width: 800 Artwork by David Revoy, license : `CC-BY `_ You can view the recorded speed painting demo for the above image `on Youtube `_. Colorizing Line Art ------------------- Often an artist, for example, a comic book colorist will need to take a pencil sketch or other line art of some sort and use Krita to paint underneath it. This can be either an image created digitally or something that was done outside the computer and has been scanned. Preparing the line art ^^^^^^^^^^^^^^^^^^^^^^ If your images have a white or other single-tone background, you can use either of the following methods to prepare the art for coloring: Place the line art at the top of the layer stack and set its layer blending mode to :guilabel:`Multiply` If you want to clean the line art a bit you can press :kbd:`Ctrl + L` or go to :menuselection:`Filters --> Adjust --> Levels` .. image:: /images/en/Levels-filter.png :alt: level filter dialog -You can clean the unwanted greys by moving the white triangle in the input levels section to left and darken the black by moving the black triangle to right. +You can clean the unwanted grays by moving the white triangle in the input levels section to left and darken the black by moving the black triangle to right. If you draw in blue pencils and then ink your line art you may need to remove the blue lines first to do that go to :menuselection:`Filters --> Adjust --> Color adjustment` curves or press shortcut :kbd:`Ctrl + M`. .. image:: /images/en/common-workflows/Color-adjustment-cw.png :alt: remove blue lines from image step 1 Now select **Red** from the drop-down, click on the top right node on the graph and slide it all the way down. Or you can click on the top right node and enter **0** in the input field. Repeat this step for **Green** too. .. image:: /images/en/common-workflows/Color-adjustment-02.png :alt: removing blue lines from scan step 2 Now the whole drawing will have a blue overlay, zoom in and check if the blue pencil lines are still visible slightly. If you still see them, then go to **Blue** Channel in the color adjustment and shift the top right node towards left a bit, Or enter a value around 190 (one that removes the remaining rough lines) in the input box. .. image:: /images/en/common-workflows/Color-adjustment-03.png :alt: remove blue lines from scans step 3 Now apply the color adjustment filter, yes we still have lots of blue on the artwork. Be patient and move on to the next step. Go to :menuselection:`Filters --> Adjust --> Desaturate` or press :kbd:`Ctrl + Shift + U`. Now select :guilabel:`Max` from the list. .. image:: /images/en/common-workflows/Color-adjustment-04.png :alt: remove blue lines from scans step 4 .. hint:: It is good to use non-photo-blue pencils to create the blue lines as those are easy to remove. If you are drawing digitally in blue lines use #A4DDED color as this is closer to non-photo-blue color. You can learn more about doing a sketch from blue sketch to digital painting `here in a tutorial by David Revoy `_. After you have a clean black and white line art you may need to erase the white color and keep only black line art, to achieve that go to :menuselection:`Filters --> Color --> Color to Alpha`. Use the dialog box to turn all the white areas of the image transparent. The Color Picker is set to White by default. If you have imported scanned art and need to select another color for the paper color then you would do it here. .. image:: /images/en/Color-to-alpha.png :alt: color to alpha dialog box -This will convert the white color in your line art to alpha i.e. it will make the white transparent leaving only the line art. Your line art can be in greyscale color space, this is a unique feature in Krita which allows you to keep a layer in a color-space independent from the image. +This will convert the white color in your line art to alpha i.e. it will make the white transparent leaving only the line art. Your line art can be in grayscale color space, this is a unique feature in Krita which allows you to keep a layer in a color-space independent from the image. Laying in Flat Colors ^^^^^^^^^^^^^^^^^^^^^ There are many ways to color a line art in Krita, but generally, these three are common among the artists. 1. Paint blocks of color directly with block brushes. 2. Fill with Flood fill Tool. 3. Use one of the G'MIC colorize comics filters. Blocking with brush """"""""""""""""""" The first is the more traditional method of taking a shape brush or using the geometric tools to lay in color. This would be similar to using an analog marker or brush on paper. There are various block brushes in Krita, you can select **Block** Tag from the drop-down in the brush presets docker and use the brushes listed there. Add a layer underneath your line art layer and start painting with the brush. If you want to correct any area you can press :kbd:`E` and convert the same brush into an eraser. You can also use a layer each for different colors for more flexibility. Filling with Flood Fill tool """""""""""""""""""""""""""" The second method is to use the Flood fill tool to fill large parts of your line art quickly. This method generally requires closed gaps in the line art. To begin with this method place your line art on a separate layer. Then activate the flood fill tool and set the :guilabel:`Grow selection` to 2px, uncheck :guilabel:`Limit to current layer` if previously checked. .. image:: /images/en/common-workflows/Floodfill-krita.png :alt: flood fill in krita Choose a color from color selector and just click on the area you want to fill the color. As we have expanded the fill with grow selection the color will be filled slightly underneath the line art thus giving us a clean fill. GMIC Colorize [Interactive] """"""""""""""""""""""""""" The third method is to use take advantage of the integrated G'Mic filters. These are powerful filters that can dramatically improve your workflow and cut you down on your production time. To begin coloring with the G'MIC colorize interactive, go to :menuselection:`Filters --> G'MIC`. Choose :menuselection:`Filters --> G'MIC --> Black & white --> Colorize[interactive]` from the list of filters. Then select Line art for :menuselection:`Input type, Image + Colors (2 Layers)` for output type, set the view resolution according to your need. If you have any specific color palette to use for coloring add the path for it in an additional color palette. The example of the filter window with the required inputs is shown below. .. image:: /images/en/common-workflows/GMIC-colorize-interactive-krita.png :alt: G'MIC window in Krita Press **Apply** to begin the coloring, this will open a color selector **palette** window and a window showing your line art. Choose the color from the palette and click on the areas that need to be filled with color like the example shown below. .. image:: /images/en/common-workflows/Krita-GMIC-colorize-interactive.png :alt: G'MIC colorize interactive window If you feel that the dots are a bit distracting you can press :kbd:`Tab` to reduce the size or hide the dots. To zoom out you can press :kbd:`Ctrl + ↓` and :kbd:`Ctrl + ↑` vice versa. Panning is done by |mousemiddle| + drag. Press :kbd:`Spacebar` to generate the colors. If you want to replace a color select the color by |mousemiddle| and pressing :kbd:`R` then you can select an alternate color from the palette. Once you have finished adding the desired flat colors you can press :kbd:`Enter` to apply the filter. Then don't forget to press **Ok** in the G'MIC dialog box. The flats colors will be placed on a separate layer. You can check `this `_ tutorial by David Revoy to know more about this technique. GMIC Colorize [comics] """""""""""""""""""""" Krita provides one more option to prepare flat colors through G'MIC colorize comics filter. This technique needs some preparations before you run the G'MIC filter. This layer extrapolates the color spots that you input below the line art You have to create two layers below the line art, one for the color spots indicating which color you need to be filled in the region and one for the final extrapolated output of the filter. Mark some colors spots in the layer beneath the line art. The layer setup can be seen in the image below. .. image:: /images/en/common-workflows/Colorize-krita.png :alt: G'MIC colorize comics layer setup The colors spots are marked in red in the image Now go to :menuselection:`Filters --> G'MIC --> Black & white --> Colorize[comics]`. In the G'MIC dialog box, select :guilabel:`All` for input and :guilabel:`In place (default)` for output, select :guilabel:`Lineart + color spots + extrapolated layers` for both input and output layers on the right-hand side. Smoothness is for filling gap tolerance and details the default is 0.5 you can adjust it according to your line art. .. image:: /images/en/common-workflows/Colorise-comics-setting.png :alt: Colorize Interactive dialog and settings Press **Apply** and **Ok** to apply and exit the G'MIC dialog. You'll now have flat colors beneath your line art. More details about this technique can be found in the tutorial `at Timothée Giet's blog `_. Painting -------- Starting from chaos ^^^^^^^^^^^^^^^^^^^ Here, you start by making a mess through random shapes and texture, then taking inspirations from the resulting chaos you can form various concepts. It is kind of like making things from clouds or finding recognizable shapes of things in abstract and random textures. Many concept artists work with this technique. You can use brushes like the shape brush, or the spray brush to paint a lot of different shapes, and from the resulting noise, you let your brain pick out shapes and compositions. .. image:: /images/en/common-workflows/Chaos2.jpg :alt: Starting a painting from chaotic sketch You then refine these shapes to look more like shapes you think they look, and paint them over with a normal paintbrush. This method is best done in a painting environment. Starting from a value based underground ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This method finds its origins in old oil-painting practice: You first make an under-painting and then paint over it with color, having the dark underground shine through. -With Krita you can use blending modes for this purpose. Choosing the color blending mode on a layer on top allows you to change the colors of the image without changing the relative luminosity. This is useful, because humans are much more sensitive to tonal differences than the difference in saturation and hue. This'll allow you to work in greyscale before going into color for the polishing phase. +With Krita you can use blending modes for this purpose. Choosing the color blending mode on a layer on top allows you to change the colors of the image without changing the relative luminosity. This is useful, because humans are much more sensitive to tonal differences than the difference in saturation and hue. This'll allow you to work in grayscale before going into color for the polishing phase. You can find more about this technique `here `_. Preparing Tiles and Textures ---------------------------- Many artists use Krita to create textures for 3d assets used for games animation etc. Krita has many texture templates for you to choose and get started with creating textures. These templates have common sizes, bit depth and color profiles that are used for texturing workflow. Krita also has a real-time seamless tile mode to help texture artist prepare tiles and texture easily and check if it is seamless on the fly. The tiled mode is called wrap-around mode, to activate this mode you have press :kbd:`W`. Now when you paint the canvas is tiled in real-time allowing you to create seamless pattern and texture, it is also easy to prepare interlocking patterns and motifs in this mode. Creating Pixel Art ------------------ Krita can also be used to create a high definition pixel painting. The pixel art look can be achieved by using Index color filter layer and overlaying dithering patterns. The general layer stack arrangement is as shown below. .. image:: /images/en/common-workflows/Layer-docker-pixelart.png :alt: Layer stack setup for pixel art -The index color filter maps specific user-selected colors to the grey scale value of the artwork. You can see the example below, the strip below the black and white gradient has an index color applied to it so that the black and white gradient gets the color selected to different values. +The index color filter maps specific user-selected colors to the grayscale value of the artwork. You can see the example below, the strip below the black and white gradient has an index color applied to it so that the black and white gradient gets the color selected to different values. .. image:: /images/en/common-workflows/Gradient-pixelart.png - :alt: color mapping in index color to greyscale + :alt: color mapping in index color to grayscale You can choose the required colors and ramps in the index color filter dialog as shown below. .. image:: /images/en/common-workflows/Index-color-filter.png :alt: index color filter dialog Dithering can be used to enhance the look of the art and to ease the banding occurred by the index color filter. Krita has a variety of dithering patterns by default, these can be found in pattern docker. You can use these patterns as fill layer, then set the blend mode to **overlay** and adjust the opacity according to your liking. Generally, an opacity range of 10% - 25% is ideal. -Paint the artwork in greyscale and add an index color filter layer at the top then add the dithering pattern fill layer below the index color filter but above the artwork layer, as shown in the layer stack arrangement above. You can paint or adjust the artwork at any stage as we have added the index color filter as a filter layer. +Paint the artwork in grayscale and add an index color filter layer at the top then add the dithering pattern fill layer below the index color filter but above the artwork layer, as shown in the layer stack arrangement above. You can paint or adjust the artwork at any stage as we have added the index color filter as a filter layer. You can add different groups for different colors and add different dithering patterns for each group. Below is an example painted with this layer arrangement. .. image:: /images/en/common-workflows/Kiki-pixel-art.png :alt: Pixel art done in Krita diff --git a/tutorials/making_an_azalea_with_the_transformation_masks.rst b/tutorials/making_an_azalea_with_the_transformation_masks.rst index 87c947e0a..9e105ab81 100644 --- a/tutorials/making_an_azalea_with_the_transformation_masks.rst +++ b/tutorials/making_an_azalea_with_the_transformation_masks.rst @@ -1,142 +1,142 @@ .. meta:: :description lang=en: Tutorial for making azalea with the help of transform masks .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier :license: GNU free documentation license 1.3 or later. .. _making_an_azalea_with_the_transformation_masks: ============================================== Making An Azalea With The Transformation Masks ============================================== .. image:: /images/en/making-azalea/Krita-screencast-azaleas.png :alt: making azalea with transform masks .. note:: This page was ported from the original post on the main page Okay, so I’ve wanted to do a tutorial for transform masks for a while now, and this is sorta ending up to be a flower-drawing tutorial. Do note that this tutorial requires you to use **Krita 2.9.4 at MINIMUM**. It has a certain speed-up that allows you to work with transform masks reliably! I like drawing flowers because they are a bit of an unappreciated subject, yet allow for a lot of practice in terms of rendering. Also, you can explore cool tricks in Krita with them. Today’s flower is the Azalea flower. These flowers are usually pink to red and appear in clusters, the clusters allow me to exercise with transform masks! I got an image from Wikipedia for reference, mostly because it’s public domain, and as an artist I find it important to respect other artists. You can copy it and, if you already have a canvas, :menuselection:`Edit --> Paste into New Image` or :menuselection:`New --> Create from Clipboard`. -Then, if you didn’t have a new canvas make one. I made an A5 300dpi canvas. This is not very big, but we’re only practicing. I also have the background color set to a yellow-greyish color (#CAC5B3), partly because it reminds me of paper, and partly because bright screen white can strain the eyes and make it difficult to focus on values and colors while painting. Also, due to the lack of strain on the eyes, you’ll find yourself soothed a bit. Other artists use #c0c0c0, or even more different values. +Then, if you didn’t have a new canvas make one. I made an A5 300dpi canvas. This is not very big, but we’re only practicing. I also have the background color set to a yellow-grayish color (#CAC5B3), partly because it reminds me of paper, and partly because bright screen white can strain the eyes and make it difficult to focus on values and colors while painting. Also, due to the lack of strain on the eyes, you’ll find yourself soothed a bit. Other artists use #c0c0c0, or even more different values. So, if you go to :menuselection:`Window --> Tile`, you will find that now your reference image and your working canvas are side by side. The reason I am using this instead of the docker is because I am lazy and don’t feel like saving the wikipedia image. We’re not going to touch the image much. Let’s get to drawing! --------------------- .. image:: /images/en/making-azalea/Azelea_01_trunk-.png :alt: starting with the trunk and reference image First we make a bunch of branches. I picked a slightly darker color here than usual, because I know that I’ll be painting over these branches with the lighter colors later on. Look at the reference how branches are formed. .. image:: /images/en/making-azalea/Azelea_02_drawing-flowers.png :alt: making the outline of the flowers Then we make an approximation of a single flower on a layer. We make a few of these, all on separate layers. We also do not color pick the red, but we guess at it. This is good practice, so we can learn to analyze a color as well as how to use our color selector. If we’d only pick colors, it would be difficult to understand the relationship between them, so it’s best to attempt matching them by eye. .. image:: /images/en/making-azalea/Azelea_03_filling-flowers.png :alt: coloring the details and filling the flowers I chose to make the flower shape opaque quickly by using the *behind* blending mode. This’ll mean Krita is painting the new pixels behind the old ones. Very useful for quickly filling up shapes, just don’t forget to go back to *normal* once you’re done. .. image:: /images/en/making-azalea/Azelea_04_finished-setup.png :alt: finished setup for making azalea Now, we’ll put the flowers in the upper left corner, and group them. You can group by making a group layer, and selecting the flower layers in your docker with :kbd:`Ctrl` + |mouseleft| and dragging them into the group. The reason why we’re putting them in the upper left corner is because we’ll be selecting them a lot, and Krita allows you to select layers with kbd:`R` + |mouseleft| on the canvas quickly. Just hold :kbd:`R` and |mouseleft| the pixels belonging to the layer you want, and Krita will select the layer in the layer docker. Clone Layers ------------ Now, we will make clusters. What we’ll be doing is that we select a given flower and then make a new clone layer. A clone layer is a layer that is literally a clone of the original. They can’t be edited themselves, but edit the original and the clone layer will follow suit. Clone Layers, and File layers, are our greatest friends when it comes to transform masks, and you’ll see why in a moment. .. image:: /images/en/making-azalea/Azelea_05_clonelayer.png :alt: create clone layers of the flowers You’ll quickly notice that our flowers are not good enough for a cluster: we need far more angles on the profile for example. If only there was a way to transform them… but we can’t do that with clone layers. Or can we? Enter Transform Masks! ---------------------- Transform Masks are a really powerful feature introduced in 2.9. They are in fact so powerful, that when you first use them, you can’t even begin to grasp where to use them. Transform masks allow us to do a transform operation onto a layer, any given layer, and have it be completely dynamic! This includes our clone layer flowers! How to use them: |mouseright| the layer you want to do the transform on, and add a **Transform mask.** A transform mask should now have been added. You can recognize them by the little ‘scissor’ icon. .. image:: /images/en/making-azalea/Azelea_06_transformmask.png :alt: adding transform masks to the cloned layers Now, with the transform mask selected, select the |tooltransform|, and rotate our clone layer. Apply the transform. You know you’re successful when you can hide the transform mask, and the layer goes back to its original state! You can even go and edit your transform! Just activate the |tooltransform| again while on a transform mask, and you will see the original transform so you can edit it. If you go to a different transform operation however, you will reset the transform completely, so watch out. .. image:: /images/en/making-azalea/Azelea_07_clusters.png :alt: adding more clusters We’ll be only using affine transformations in this tutorial (which are the regular and perspective transform), but this can also be done with warp, cage and liquify, which’ll have a bit of a delay (3 seconds to be precise). This is to prevent your computer from being over-occupied with these more complex transforms, so you can keep on painting. We continue on making our clusters till we have a nice arrangement. .. image:: /images/en/making-azalea/Azelea_08_leaves.png :alt: making leaves Now do the same thing for the leaves. .. image:: /images/en/making-azalea/Azelea_09_paintingoriginals.png :alt: painting originals Now, if you select the original paint layers and draw on them, you can see that all clone masks are immediately updated! Above you can see there’s been a new view added so we can focus on painting the flower and at the same time see how it’ll look. You can make a new view by going :menuselection:`Window --> New View` and selecting the name of your current canvas (save first!). Views can be rotated and mirrored differently. Now continue painting the original flowers and leaves, and we’ll move over to adding extra shadow to make it seem more lifelike! .. image:: /images/en/making-azalea/Azelea_10_alphainheritance_1.png :alt: using the alpha inheritance We’re now going to use *Alpha Inheritance*. Alpha inheritance is an ill-understood concept, because a lot of programs use *clipping masks* instead, which clip the layer’s alpha using only the alpha of the first next layer. Alpha inheritance, however, uses all layers in a stack, so all the layers in the group that haven’t got alpha inheritance active themselves, or all the layers in the stack when the layer isn’t in a group. Because most people have an opaque layer at the bottom of their layer stack, alpha inheritance doesn’t seem to do much. But for us, alpha inheritance is useful, because we can use all clone-layers in a cluster (if you grouped them), transformed or not, for clipping. Just draw a light blue square over all the flowers in a given cluster. .. image:: /images/en/making-azalea/Azelea_11_alphainheritance_2.png :alt: clipping the cluster with alpha inheritance Then press the last icon in the layer stack, the alpha-inherit button, to activate alpha-inheritance. .. image:: /images/en/making-azalea/Azelea_12_alphainheritance_3.png :alt: activate alpha inheritance Set the layer to *multiply* then, so it’ll look like everything’s darker blue. .. image:: /images/en/making-azalea/Azelea_13_alphainheritance_4.png :alt: multiplying the clipped shape Then, with multiply and alpha inheritance on, use an eraser to remove the areas where there should be no shadow. .. image:: /images/en/making-azalea/Azelea_14_alphainheritance_5.png :alt: remove extra areas with the eraser For the highlights use exactly the same method, AND exactly the same color, but instead set the layer to Divide (you can find this amongst the Arithmetic blending modes). Using Divide has exactly the opposite effect as using multiply with the same color. The benefit of this is that you can easily set up a complementary harmony in your shadows and highlights using these two. .. image:: /images/en/making-azalea/Azelea_15_alphainheritance_6.png :alt: add shadows and highlights with alpha inheritance technique Do this with all clusters and leaves, and maybe on the whole plant (you will first need to stick it into a group layer given the background is opaque) and you’re done! Transform masks can be used on paint layers, vector layers, group layers, clone layers and even file layers. I hope this tutorial has given you a nice idea on how to use them, and hope to see much more use of the transform masks in the future! You can get the file I made `here `_ to examine it further! (Caution: It will freeze up Krita if your version is below 2.9.4. The speed-ups in 2.9.4 are due to this file.) diff --git a/user_manual/introduction_from_other_software/introduction_from_photoshop.rst b/user_manual/introduction_from_other_software/introduction_from_photoshop.rst index cd3302dd6..2979be54f 100644 --- a/user_manual/introduction_from_other_software/introduction_from_photoshop.rst +++ b/user_manual/introduction_from_other_software/introduction_from_photoshop.rst @@ -1,392 +1,392 @@ .. meta:: :description: This is a introduction to Krita for users coming from Photoshop. .. metadata-placeholder :authors: - David Revoy, davidrevoy@gmail.com - Inge Wallin, inge.wallin@kogmbh.com - Wolthera van Hövell tot Westerflier, griffinvalley@gmail.com - AnetK - JakeD - Radianart - Raghavendra Kamath :license: GNU free documentation license 1.3 or later. .. index:: Photoshop .. _introduction_from_photoshop: =========================================== Introduction to Krita coming from Photoshop =========================================== Introduction ------------ This document gives an introduction to Krita for users who have been using Photoshop. The intention is to make you productive in Krita as fast as possible and ease the conversion of old habits into new ones. This introduction is written with Krita version 2.9 and Photoshop CS2 and CS3 in mind. But even though things may change in the future, the basics will most likely remain the same. The first thing to remember is that Krita is a 2D paint application while Photoshop (PS) is an image manipulation program. This means that PS has more features than Krita in general, but Krita has the tools that are relevant to digital painting. When you get used to Krita, you will find that Krita has some features that are not part of PS. Krita Basics ------------ This chapter covers how you use Krita in the basic operations compared to PS. View and Display ~~~~~~~~~~~~~~~~ Navigation ^^^^^^^^^^ In Krita you can navigate your document using all these methods: #. '*Mouse wheel*': |mousescroll| down and up for zoom, and press |mousemiddle| down to pan your document. #. '*Keyboard*': with :kbd:`+` and :kbd:`-` on your numpad keyboard. #. As in Photoshop, Painter, Manga Studio: :kbd:`Ctrl + Space` to zoom, and :kbd:`Space` to pan. .. note:: If you add :kbd:`Alt` and so do a :kbd:`Ctrl + Alt + Space` you’ll have a discrete zoom. Rotation ^^^^^^^^ Rotate the canvas with :kbd:`Shift + Space`, or :kbd:`Ctrl + [` and :kbd:`Ctrl + ]` or with 4 or 6. Reset the rotation with 5. Mirror ^^^^^^ Press :kbd:`M` to see your drawing or painting mirrored in the viewport. Move and Transform ^^^^^^^^^^^^^^^^^^ Moving and Transformation of contents is done using tools in Krita. You can then find them in the toolbar. If you are familiar with the way to move layers in PS by holding down :kbd:`Ctrl`, you can do the same in Krita by pressing the :kbd:`T` key for the move tool (think ‘T’ranslate) or :kbd:`Ctrl + T` for transform tool. Press :kbd:`B` to go back to the brush tool when the transformation or translation is done. To find how to make advanced deformations using the :guilabel:`Transform` tool, do not right-click on the on-canvas widget: all the option are in the :guilabel:`Tool Options` docker. Changes can be applied with :kbd:`Enter` for the Transform tool. .. note:: Move tool changes are auto-applied. Selections ~~~~~~~~~~ Like in PS, you can use :kbd:`Alt` or :kbd:`Shift` during a selection to remove or add selection to the active selection. Krita also offers sub tools for this, and you can select them in the :guilabel:`Tool Options` if a select tool is active. These sub tools are represented as icons. You can switch to those sub modes by pressing: * :kbd:`R` to replace selection * :kbd:`T` to intersect * :kbd:`A` to add to the selection (this is the one you will want to use often) * :kbd:`S` to subtract from the selection (the other one popular) Or hold: * :kbd:`Alt` to subtract from the selection * :kbd:`Shift` to add to the selection * :kbd:`Alt + Shift` to intersect .. note:: You cannot press :kbd:`Ctrl` to move the content of the selection (you have to press :kbd:`T` or select the :guilabel:`Move Tool`). Some other tips: * If you want to convert a layer to a selection (to select the visible pixels), right-click on the layer docker, and choose :guilabel:`Select Opaque`. * If you use a polygonal selection tool, or a selection which needs to be ‘closed’, you will be able to do it or by using a double-click, or by using a :kbd:`Shift` - |mouseleft| . You can scale selection. To do this, choose :menuselection:`Select --> Scale`. .. note:: Also, in the :guilabel:`Select` menu there are more classical options to grow, shrink, feather, border, etc. -If you enable :guilabel:`Show Global Selection Mask` (:guilabel:`Select` menu) you can scale/rotate/transform/move or paint on selection like on regular greyscale layer. +If you enable :guilabel:`Show Global Selection Mask` (:guilabel:`Select` menu) you can scale/rotate/transform/move or paint on selection like on regular grayscale layer. * :kbd:`Ctrl + H`: Show / Hide selection (same shortcut) * :kbd:`Ctrl + A`: Select All * :kbd:`Ctrl + Shift + A`: deselect All (and not :kbd:`Ctrl + D` as in PS) Note for Gimp user: Krita auto-expands and auto defloats new layers created from a selection after a :kbd:`Ctrl + C`, :kbd:`Ctrl + V` so you do not have to worry about not being able to paint outside the pasted element. .. note:: This doesn't work as intended right now. Intersect is a selection mode which uses :kbd:`T` as the shortcut. However :kbd:`T` is also used to switch to the :guilabel:`Move tool` so this shortcut is not functional right now. You have to use the button on the :guilabel:`Tool Options`. Layer Handling ~~~~~~~~~~~~~~ The most common shortcuts are very similar in PS and Krita: * :kbd:`Ctrl + J`: duplicate * :kbd:`Ctrl + E`: merge down * :kbd:`Ctrl + Shift + E`: flattens all (not :kbd:`Ctrl + Shift + M` as in PS) * :kbd:`Ins`: insert a new paint layer * :kbd:`Ctrl + G`: create new layer group and move selected layers to this group Groups and Blending Mode (Composite Mode): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The group blending mode in Krita has priority over child layers and overrides it. This can be surprising for Photoshop users. On Photoshop you can use groups to just clean your layer stack and keep blending mode of your layer compositing through all the stack. In Krita the compositing will happen at first level inside the group, then taking into account the blending mode of the group itself. Both systems have pros and cons. Krita’s way is more predictable according to some artists, compositing-wise. The PS way leads to a cleaner and better ordered layer stack visually wise. Multi Layer Transform or Move ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You can select multiple layers on the stack by holding down :kbd:`Shift` as in PS, and if you move the layer inside a group you can move or transform the whole group - including doing selection on the group and cut all the sub layers inside on the fly. You can not apply filters to group to affect multiple layers. Clipping Masks ^^^^^^^^^^^^^^ Krita has no clipping mask, but there is a workaround involving layer groups and :guilabel:`Inherit alpha` (see the alpha icon). Place a layer with the shape you want to clip the other with at the bottom of a group and layers above with the :guilabel:`Inherit alpha` option. This will create the same effect as the “clipping mask” PS feature. This process of arranging groups for inherit alpha can be done automatically by :kbd:`Ctrl + Shift + G` shortcut. It creates a group with base layer and a layer above it with inherit alpha option checked by default. Pass-through mode ^^^^^^^^^^^^^^^^^ This is available in Krita, but not implemented as a blending mode. Rather, it is an option next to ‘inherit alpha’ on group layers. Smart Layers ^^^^^^^^^^^^ Instead of having smart layers that you can do non-destructive transforms on, Krita has the following set of functionality: File Layers These are layers which point to an outside file, and will get automatically updated if the outside file changes. Clone Layers These are layers that are an ‘instance’ of the layer you had selected when creating them. They get updated automatically when the original layer updates. Transform Masks These can be used to non-destructive transform all layer types, including the file and clone layers. Filter Masks Like adjustment layers, these can apply filters non-destructively to all layer types, including file and clone layers. Layer styles ^^^^^^^^^^^^ You can apply Photoshop layerstyles in Krita by right clicking any given layer type and selecting ‘layer style’ from the context menu. Krita can open and save ASL files, but not all layer style functionality is there yet. Other ^^^^^ Layers and groups can be exported. See the :guilabel:`Layer` top menu for this and many other options. .. note:: Krita has at least 5 times more blending modes than PS. They are sorted by categories in the drop-down menu. You can use the checkbox to add your most used to the Favorite categories. Paint tools ~~~~~~~~~~~ This is Krita's strong point. There are many paint tools and they have a lot of options. Tools ^^^^^ In Krita, there is a totally different paradigm for defining what ‘tools’ are compared to PS. Unlike in PS, you will not find the brush, eraser, clone, blur tool, etc. Instead, you will find a *way to trace* your strokes on the canvas: freehand, line, rectangle, circle, multiple brush, etc. When you have selected the ‘way to trace’ you can choose the *way to paint*: erasing / cloning / blurring, etc are all part of *way it paint* managed by the brush-engines options. These brush engine options are saved into so-called *presets*, which you can find on :guilabel:`Brush presets`. You can fine tune, and build your own presets using the :guilabel:`Edit Brush Settings` icon on the top tool bar. Erasing ^^^^^^^ In Krita, the eraser is not a tool, it is a Blending mode (or Composite mode). You can change each brush you have to erase by pressing :kbd:`E`. By pressing :kbd:`E` again you’ll be back to the last blending mode you had selected before pressing :kbd:`E` the first time. Useful shortcuts ^^^^^^^^^^^^^^^^ * :kbd:`Shift`: Grow or Shrink the brush size (or :kbd:`[` and :kbd:`]`). * :kbd:`/`: Switch last preset selected and current (ex: a pencil preset, and an eraser preset). * :kbd:`K` and :kbd:`L`: Increment Darker and Lighter value of the active color. * :kbd:`I` and :kbd:`O`: Increment opacity plus or minus. * :kbd:`D`: Reset color to black/foreground and white/background. * :kbd:`X`: Switch background and foreground colors. * :kbd:`Shift + I` / :kbd:`Shift + N` / :kbd:`Shift + M`: A set of default keyboard shortcuts for accessing the on-canvas color selector. .. note:: Some people regard these shortcuts as somewhat unfortunate. The reason is that they are meant to be used during painting and left-:kbd:`Shift` is at the opposite end of the keyboard from :kbd:`I`, :kbd:`M` and :kbd:`N`. So for a right-handed painter, this is very difficult to do while using the stylus with a right hand. Note that you can reassign any shortcut by using the shortcut configuration in :menuselection:`Settings --> Configure Shortcuts`. Stabilization / Path Smoothing ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Using the freehand ‘paint with brush’ tool that you can find on the Tool Options, more settings for smoothing the path and stabilization of your brush strokes are available. Global pressure curve ^^^^^^^^^^^^^^^^^^^^^ If you find the feeling of Krita too hard or too soft regarding the pressure when you paint, you can set a softer or harder curve here: :menuselection:`Settings --> Configure Krita --> Tablet settings` Adjustment ^^^^^^^^^^ Like in PS, you can use the classic filters to adjust many things while painting: * :kbd:`Ctrl + L` : Levels * :kbd:`Ctrl + U`: HSV adjustment * :kbd:`Ctrl + I`: Invert Dodge / Burn / Blur Tools ^^^^^^^^^^^^^^^^^^^^^^^^^ Unlike Photoshop, where these are separate tools, in Krita, they are available via the Filter Brush Engine, which allows you to apply the majority of Krita's filters in brush form. Themes ^^^^^^ If you don’t like the dark default theme of Krita go to: :menuselection:`Settings --> Themes`, and choose a brighter or darker theme. If you don’t like the color outside your viewport go to: :menuselection:`Settings --> Configure Krita --> Display`, and change the Canvas border color. What Krita Has Over Photoshop ----------------------------- As mentioned in the introduction, Krita is a specialized paint application. Thus, it also has specialized tools for painting. Similar tools are not found in more generalized image manipulation applications such as PS. Here is a short list of the most important ones. Brush Engines ~~~~~~~~~~~~~ Krita has a lot of different so-called brush engines. These brush engines define various methods on how the pixels end up on your canvas. Brush engines with names like Grid, Particles, Sketch and others will bring you new experiences on how the brushes work and a new landscape of possible results. You can start customizing brushes by using the brush-settings editor, which is accessible via the toolbar, but it's much easier to just press :kbd:`F5`. Tags for brush presets ~~~~~~~~~~~~~~~~~~~~~~ This is a very useful way to configure brush presets. Each brush can have any amount of tags and be in any group. You can make tag for blending brushes, for texture brushes, for effect brushes, favorites etc. Settings curves ~~~~~~~~~~~~~~~ You can set setting to pressure (speed/distance/tilt/random/etc.) relation for each brush setting. .. image:: /images/en/Settings-curves.jpg :align: center The Pop-up Palette ~~~~~~~~~~~~~~~~~~ .. image:: /images/en/Krita-popuppalette.png :align: center Easily to be found on |mouseright|, the pop-up palette allows you to quickly access brushes, color history and a color selector within arm's reach. The brushes are determined by tag, and pressing the lower-right configure button calls a drop-down to change tags. This allows you to tag brushes in the preset docker by workflow, and quickly access the right brushes for the workflow you need for your image. Transformations ~~~~~~~~~~~~~~~ The Krita transformation tool can perform transformations on a group and affect child layers. There are several modes, like free, perspective, warp, the powerful cage and even liquify. Furthermore, you can use transformation masks to apply transforms non-destructively to any layer type, raster, vector group, you name it. .. figure:: /images/en/Krita-transform-mask.png :align: center :figwidth: 800 Transform masks allows non-destructive transforms Incremental Save ~~~~~~~~~~~~~~~~ You can save your artwork with the pattern : myartworksname_001.kra , myartworksname_002.kra, myartworksname_003.kra etc, by pressing a single key on the keyboard. Krita will increment the final number if the pattern "_XXX" is recognized at the end of the file's name. .. image:: /images/en/Krita-incremental-saves.png :align: center This feature allows you to avoid overwriting your files, and keep track to your older version and work in progress steps. Color to alpha Filter ~~~~~~~~~~~~~~~~~~~~~ If you want to delete the white of the paper from a scanned artwork, you can use this filter. It takes a color and turns it into pure transparency. .. image:: /images/en/Krita-color-to-alpha.png :align: center Many Blending Modes ~~~~~~~~~~~~~~~~~~~ If you like using blending modes, Krita has many of them -- over 70! You have plenty of room for experimentation. A special system of favorite blending modes has been created to let you have fast access to the ones you use the most. Painting Assistants ~~~~~~~~~~~~~~~~~~~ Krita has many painting assistants. This is a special type vector shapes with a magnetic influence on your brush strokes. You can use them as rulers, but with other shapes than just straight. .. figure:: /images/en/Krita_basic_assistants.png :align: center :figwidth: 800 Krita's vanishing point assistants in action Multibrushes: Symmetry / Parallel / Mirrored / Snowflake ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Krita's Multibrush tool allows you to paint with multiple brushes at the same time. Movements of the brushes other than the main brush is created by mirroring what you paint, or duplicating it by any number around any axis. They can also be used in parallel mode. .. image:: /images/en/Krita-multibrush.png :align: center A Wide Variety of Color Selectors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The :guilabel:`Advanced Color Selector` docker offer you a wide choice of color selectors. .. image:: /images/en/Krita_Color_Selector_Types.png :align: center View dependent color filters ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Using the LUT docker, Krita allows you to have a separate color correction filter per view. While this is certainly useful to people who do color correction in daily life, to the artist this allows for seeing a copy of the image in luminance grayscale, so that they instantly know the values of the image. .. figure:: /images/en/Krita-view-dependant-lut-management.png :align: center :figwidth: 800 Using the LUT docker to change the colors per view HDR color painting ~~~~~~~~~~~~~~~~~~ This same LUT docker is the controller for painting with HDR colors. Using the LUT docker to change the exposure on the view, Krita allows you to paint with HDR colors, and has native open exr support! .. figure:: /images/en/Krita-hdr-painting.png :align: center :figwidth: 800 Painting with HDR colors What Krita Does Not Have ------------------------ Again, Krita is a digital paint application and Photoshop is an image manipulation program with some painting features. This means that there are things you can do in PS that you cannot do in Krita. This section gives a short list of these features. Filters ~~~~~~~ Krita has a pretty impressive pack of filters available, but you will probably miss one or two of the special filters or color adjustment tools you often use in Photoshop. For example, there is no possibility to tweak a specific color in HSV adjustment. Automatic healing tool ~~~~~~~~~~~~~~~~~~~~~~ Krita does not have an automatic healing tool. It does, however, have a so-called clone tool which can be used to do a healing correction, although not automatically. Macro Recording ~~~~~~~~~~~~~~~ Macro recording and playback exists in Krita, but it is not working well at this time. Text Tool ~~~~~~~~~ The text tool in Krita is less advanced than the similar tool in Photoshop. Blending Modes While Transforming ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When you transform a layer or a selection in Krita, the transformation appears on the top of your layer stack ignoring the layer blending mode. Other ~~~~~ Also, you cannot ‘Export for web’, ‘Image Ready’ for Gif frame or slicing web image, etc. Conclusion ---------- Using these tips you will probably be up to speed with Krita in a short time. If you find other things worth mentioning in this document we, the authors, would be interested in hearing about them. Krita develops fast, so we believe that the list of things possible in Photoshop but not in Krita will become shorter in time. We will maintain this document as this happens.