Krita

krita.org/en
Krita

Digital painting application. Free and open source (backed by KDE), with cross-platform support, Krita is popular among both professional and amateur artists due to it's comprehensive feature set, and intuitive UI

Open Source

Krita Source Code

Author

KDE

Description

Krita is a free and open source cross-platform application that offers an end-to-end solution for creating digital art files from scratch built on the KDE and Qt frameworks.

Homepage

https://invent.kde.org/graphics/krita

License

GPL-3.0

Created

09 Oct 15

Last Updated

29 Jul 26

Latest version

v42.0-beta2

Primary Language

C++

Size

9,960,428 KB

Stars

10,114

Forks

814

Watchers

10,114

Language Usage

Language Usage

Star History

Star History

Top Contributors

Recent Commits

  • l10n daemon script (29 Jul 26)

    GIT_SILENT Sync po/docbooks with svn

  • Luna Lovecraft (27 Jul 26)

    Fix assistant preview not instantly updating when toggled Before this commit if the assistant preview is toggled with a shortcut the user would have to move the stylus/cursor slightly for it to appear/disappear

  • Luna Lovecraft (24 Jul 26)

    Fix assistant not updating when toggled with an action Before this commit when the assistant is being toggled with an action the canvas doesn't always update immediately, causing it to not be visible until the canvas is hovered BUG:522511

  • l10n daemon script (28 Jul 26)

    GIT_SILENT Sync po/docbooks with svn

  • Luna Lovecraft (27 Jul 26)

    Add subpath removal unit test This new test is for the changes in 329d8714c652

  • Carsten Hartenfels (27 Jul 26)

    [android] Use "next" icon on debug builds Because that's what is used in the application as well.

  • Carsten Hartenfels (12 Jul 26)

    [android] Default animation video export to true Because exporting frames on Android is slow, useless and clogs up your recent images tab in the gallery. It makes more sense to default to exporting videos there.

  • Carsten Hartenfels (12 Jul 26)

    [android] Don't allow combined image/video export For animations, since it doesn't work well. For one, it makes the animation export dialog way too tall, causing it to spill out of the screen on some devices. Writing all those frames to external storage is also incredibly slow on some devices, writing them to an internal temporary directory is several orders of magnitude quicker, negating any advantages that could be gained from exporting the frames only once.

  • Carsten Hartenfels (12 Jul 26)

    Make animation warning label less ugly and jittery By giving it a less garish icon for its warning sign as well as hiding and showing it cleanly instead of changing its visibility and then afterwards setting the text and label.

  • Carsten Hartenfels (11 Jul 26)

    [android] Animation audio exporting Uses MLT to read the samples from the input audio file and pipes that data into the Android media encoder. The sample format, sampling rate, and channel count are taken straight from the input file, we don't attempt to resample them.

  • Carsten Hartenfels (11 Jul 26)

    Don't handle audio in export for image formats Because there's no point in putting work into inputting it into encoders that don't support it.

  • Carsten Hartenfels (11 Jul 26)

    Hide audio checkbox for image animation formats Because they don't support audio, hence it makes no sense to prompt the user if they want to include it.

  • Carsten Hartenfels (11 Jul 26)

    [android] Allow copying content URI to temp file Since that will be needed for a subsequent commit to support audio in animations, MLT can't read from content URIs directly.

  • Carsten Hartenfels (11 Jul 26)

    [android] Show media encoder error to the user By adding a field for the custom error message in KisImportExportErrorCode. Previously the actual error was only in the log and the user got a terribly generic error message.

  • Carsten Hartenfels (10 Jul 26)

    Warn about crazy animation export parameters FPS above 30 and dimensions beyond 1920 in either direction, since those can cause some exporters to fail and some devices to refuse to play back the resulting file. This is analogous to the timelapse export dialog. This also fixes the flicker of the warning dialog a bit by disabling updates during its refresh and doesn't show the warnings about video issues when the user isn't exporting video.

  • Carsten Hartenfels (10 Jul 26)

    [android] Implement animation video rendering Through the Android Media Encoder API and libav, like it is done for timelapse exports. Does not yet support audio.

  • Carsten Hartenfels (10 Jul 26)

    [android] Properly check pre-existing frames When exporting animation frames, because trying to juggle the content URI with QFileInfo doesn't work and just returns garbage, which means it will never notice that there are existing files. Now the path mangling is done manually instead.

  • Carsten Hartenfels (02 Jul 26)

    [android] Fix identical animation frame copying It used QFile::copy, which is busted for sandboxed directories. It now goes through QFile manually, since that handles content URIs correctly.

  • Carsten Hartenfels (01 Jul 26)

    Implement GIF, WEBP and APNG rendering via LibAV Since those are formats not supported by the Android media encoder and we need them there. This would theoretically also be usable on other operating systems, but we currently only include it on Android. At the time of this commit, the LibAV we build only supports GIF out of these formats. The only format that would have somewhat sensible preferences out of these would be WEBP, but since it isn't actually available in practice currently, the form for it is not implemented and always uses lossless mode.

  • Carsten Hartenfels (01 Jul 26)

    Allow iterating encoder frames multiple times GIF needs this because it must iterate the frames twice: once to create a palette and then again to actually render the animated image. This commit allows rewinding the iterator and specifying a ratio for the progress slider so that it doesn't show 100% when the encoding is only halfway done.

  • Carsten Hartenfels (01 Jul 26)

    Handle media encoder formats without preferences By letting them return a null preferences widget. This will display a message about the format not having preferences and will show just a close button in the dialog instead of pointless reset, OK and cancel buttons.

  • Carsten Hartenfels (01 Jul 26)

    Split off common libav context functionality It will be used in a libav media encoder implementation coming in subsequent commits, this pulls some common parts out of the Android encoder.

  • Timothée Giet (22 Jul 26)

    Add option to show or not icons in menu Add option to override the native convention and let users decide if they want icons in menu.

  • Moritz Staudinger (27 Jul 26)

    Fix color adjustment curve input controls on open setActiveChannel() does nothing if the reset channel is the same as the current one, so we should resync explicitly. Fixes #117

  • Luna Lovecraft (23 Jul 26)

    Fix wg color selector popup appearing in the wrong location Before this commit when the wg color selector is borrowed by the popup palette, the preview popup would appear in the old docker location, instead of where its supposed to

  • Luna Lovecraft (23 Jul 26)

    Fix wide gamut color selector preview popup not hiding Before this commit when the wide gamut color selector is borrowed by the popup palette, the color preview popup would not disappear properly. BUG:522620

  • Luna Lovecraft (23 Jul 26)

    Fix buttons not working in the svg text editor Before this commit buttons in the svg text editor would crash the app, due to m_currentEditor not being initialized properly, and not handling tab switching. BUG:523069

  • Elena Sagalaeva (01 Jul 26)

    Do not create a new path shape in KoMultiPathPointMergeCommand::redo() call The subsequent operations don't know about the new shape and continue to use the old one, which causes crashes. BUG:523070

  • Luna Lovecraft (20 Jul 26)

    Add segment deselection Now the user can Shift click a selected segment and it will be deselected

  • Dmitry Kazakov (27 Jul 26)

    Use standard sorting operator when sorting points on removal Otherwise the points of different shapes may be mixed together, which is not good.

Krita Security

2.5/10

Repo Security Summary

Updated 13 Jul 26

  • Code-Review 0/10
  • Maintained 10/10
  • Packaging N/A
  • CII-Best-Practices 0/10
  • Dangerous-Workflow N/A
  • Token-Permissions N/A
  • License 10/10
  • Signed-Releases N/A
  • Branch-Protection 0/10
  • Security-Policy 0/10
  • SAST 0/10
  • Fuzzing 0/10
  • Binary-Artifacts 3/10
  • Pinned-Dependencies N/A

Krita Website

Website

Krita | Digital Painting. Creative Freedom.

Krita is a professional FREE and open source painting program. It is made by artists that want to see affordable art tools for everyone.

Redirects

Redirects to https://krita.org/en/

Security Checks

All 65 security checks passed

Server Details

  • IP Address 85.10.198.55
  • Hostname tyran.kde.org
  • Location Nuremberg, Bayern, Germany, EU
  • ISP Hetzner Online GmbH
  • ASN AS24940

Associated Countries

  • US US
  • DE DE
  • NL NL
  • GB GB

Safety Score

Website marked as safe

100%

Blacklist Check

krita.org was found on 0 blacklists

  • AntiSocial Blacklist
  • Artists Against 419
  • Badbitcoin
  • Bambenek Consulting
  • CERT Polska
  • CoinBlockerLists
  • CRDF
  • CryptoScamDB
  • EtherAddressLookup
  • EtherScamDB
  • Fake Website Buster
  • MetaMask EthPhishing
  • NABP Not Recommended Sites
  • OpenPhish
  • PetScams
  • PhishFeed
  • PhishFort
  • Phishing.Database
  • PhishStats
  • PhishTank
  • Phishunt
  • RPiList Not Serious
  • Scam.Directory
  • SecureReload Phishing List
  • Spam404
  • StopGunScams
  • Suspicious Hosting IP
  • ThreatFox
  • ThreatLog
  • TweetFeed
  • URLhaus
  • ViriBack C2 Tracker

Website Preview

Website preview

Krita Docker

Container Info

Krita

[Krita](https://krita.org/en/) is a professional FREE and open source painting program. It is made by artists that want to see affordable art tools for everyone.

#Image Editor linuxserver/krita:latest

Run Command

docker run -d \
  -p 3000:3000/tcp \
  -p 3001:3001/tcp \
  -e PUID=${PUID} \
  -e PGID=${PGID} \
  -e TZ=${TZ} \
  -v /srv/lsio/krita/config:/config \
  --restart=unless-stopped \
  linuxserver/krita:latest

Compose File

version: 3.8
services:
  krita:
    image: "linuxserver/krita:latest"
    ports:
      - "3000:3000/tcp"
      - "3001:3001/tcp"
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Etc/UTC
    volumes:
      - "/srv/lsio/krita/config:/config"
    restart: unless-stopped

Environment Variables

  • Var Name Default
  • PUID 1000
  • PGID 1000
  • TZ Etc/UTC

Port List

  • 3000:3000/tcp
  • 3001:3001/tcp

Volume Mounting

  • /srv/lsio/krita/config /config

Krita Reviews

More Image Editors

About the Data: Krita

Change History

  • Added

API

You can access Krita's data programmatically via our API. Simply make a GET request to:

https://api.awesome-privacy.xyz/v1/services/krita

The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.

Share Krita

Help your friends compare Image Editors, and pick privacy-respecting software and services.
Share Krita and Awesome Privacy with your network!

View Image Editors (8)