JPEG Export

Hi

Another plugin :sweat_smile:

From this topic, where I’m asking a feature request about JPEG export, @KnowZero told me that the implementation should be available in Krita 5.1 :slight_smile:

But as I also had on my side started a private plugin to provide the functionality, @KnowZero convinced me to publish it to let users from Krita 4.4.3 and 5.0.0 being able to use it if needed.

So, you’ll find on github the JPEG Export plugin.

All instruction to download/install it are provided on main plugin page.

In few word, the plugins allows to export as JPEG with a preview of final result and final file size (ie: allows to check quality of exported file according to produced jpeg file size)

Functionalities

  • Provides most of JPEG export options
  • Real time (~1s) export result preview
  • Exported result preview is rendered in a Krita view
    – Allows to zoom and scroll on export result preview to check for JPEG compression artifacts
    – Exported JPEG file size provided
    – Different render modes (Final result, difference with source)

Interface screenshot

Notes

  • Not tested on Windows and MacOS (only Linux Appimage), but it should work…

[2021-12-11] release v1.2.0

  • Implement Resize from width or from height
  • Fix bug Cleanup and missing controls
  • Fix bug Missing icons
  • Fix bug Menu not in the right place

For detailed functionalities description, you can read the full detailed release content directly on github repository.


Grum999

9 Likes

It looks very nice! But uh-oh, here comes the Feature Creep!

Feature Creep cackles

A few quality of life improvements I, personally would really like to see in exporting from Krita are:

  • Export selected area
  • Resize image (IIRC implemented in 5.0 or 5.1)
  • wishlist: run unsharp mask after scaling image down.
2 Likes

Hi

Yes, that’s something I really need too, it’s implemented and will be available for v1.1.0 :slight_smile:

Not sure about that.
You need to provide me arguments to convince me of utility of resize during export.

My point of view is, export to JPEG format is normally made at the end, when artwork is finished and ready to be published to social network (and/or other media).

My workflow at this point is to prepare the document:

  • flattening image
  • resizing => using the right resize filter (bicubic, lancsoz3, bspline, …)
  • post-resizing fix if any

Once ready, I export document.

I’m not sure about the interest to add these actions in the export process… :thinking:

If you can explain your process, and in what it could help, maybe I’ll be convainced :slight_smile:

Currently, the layout (fix ‘crop’ option) looks like this:

I suppose if additional options (resize, filtering, …) need to be added, I have to use tabs to put miscellaneous options into another view.

Also:

  • One might want an unsharpening filter, another one a sharpening, another might want a color profile conversion… :sweat_smile:
  • *Also, by providing these options, we might need to be able to save settings? in different profiles according to different use case? :woozy_face:

That’s a lot of work that really need to be argued :exploding_head:

Grum999

After the export you need to remember to undo flattening and resizing so you don’t accidentally save over your original file. If resizing was built into the export you’d still have the original when you’re done and can keep working on it without worries. That would actually be the main benefit of exporting instead of using ‘save as’ imo.

:thinking:

On my side, when I’m flattening, I save flattened document to PNG and start to work from here for JPEG export; I’m sure to not overwrite original document (even if i have 4 backup files :sweat_smile:)

For what I understood, you made export during the artwork processing, not when it’s finished?

Grum999

Sorry, I don’t have time right now to go into much detail here. I see your point about complexity and agree. You’d essentially need to be able to define a macro of an arbitrary number of actions.

But without at least the resize, I don’t see myself using export selected for most of my pictures, because I almost always scale down.

Yes, if it is a work in progress jpeg I want.

Anyway, export should be a convenience feature, right? If you have to save it as a png first, what’s the point of exporting instead of just saving as a jpeg?

So even if it was finished you could just export it to an 800 px wide jpeg and not have to flatten, resize, save as png, and finally export.

lol :sweat_smile:

I’m already working on another plugin for something like that, and I can tell you that’s it’s not “simple” from a developer point of view.
And I’m even not sure that it could be useful for other (even if I try to do something that can be used by others)

Here, post-resizing processing of arbitrary number of actions is something I can’t implement quickly and easily…

Most of my plugins are built to let me be able to do things quickly, easily and in the way I’m thinking :slight_smile:

It’s maybe a little bit selfish but consider:

  1. To implement something I need at least a “business requirement description”
    And here, I’m the one who write it, based on my own experience and need only :sweat_smile:
  2. I provide plugins for everyone for free
  3. I’m open to improve them to let the functionalities being useful for others

That’s why I asked about workflows because I don’t want to spent time on something I won’t use -or something that won’t be used by others- if I don’t understand what is really needed and why.

I now better understand your need of resizing during export.
I’m looking about how implement this :wink:

@hulmanen clearly the filtering won’t be implemented here, too much work; I suppose the unsharpen is because by resizing and image with bicubic or bilinear filter generate soft/blurry edges… I suppose by using another resizing method, you can get some results that will match your need.

Here an example of this artwork resized from 4961x7016 to 800x1131, using the following resizing filter:

Col 1 Col 2 Col 3 Col 4
Row 1 B-Spline Bell Bicubic Bilinear
Row 2 Hermite Lancsoz3 Mitchell Nearest neighbour

Result (scale 1:1)
resizing-x1
Result (scale 4:1)

You can see difference between algorithms and sharpness.

Does having this could cover your need?

To talk about the PNG file and the crop functionality without downsizing, it’s pretty simple in my case.

Most of my artworks are made in A4@600dpi; that’s too big to be published.
So I have to resize them and export them as Jpeg, trying to keep the maximum quality (for example on KA it’s ~3MB max)

My first action is to flatten artwork.

I save a copy of all my artworks in a PNG version with full size; this let me:

  • Having a full lossless version of my artwork ready to be used
  • Having a file that I can open quickly on third party software (or in Krita) if needed
    (most of my Kra files are heavy, can have hundred of layers, and takes time to be opened)

From here, before resizing, I export some part of the artwork in full size, to let people being able to appreciate details that will be lost with published resized version.
You can see what I mean on my artstation gallery.

Grum999

Of course. I just jumped at the opportunity to talk about export in general because I’ve always wondered why there isn’t a resize option. :slight_smile:

Thanks for explaining your point of view!

Hi

Release 1.1.0 is available

[2021-11-07]

  • Implement Crop to selection
  • Implement Resize exported document
  • Implement Exported document dimensions
  • Improve Render preview

For screenshots and functionalities description, you can read the full detailed release content directly on github repository.
And main JPEG Export page.

Grum999

3 Likes

Nice! :slight_smile:

Unfortunately it doesn’t seem to work with Beta 1.

I’ll try again when I get around to download Beta 2.

I didn’t tested on beta 1…
But it should work :thinking:

Have you an error message?
Running on Linux, Windows, OsX?

Grum999

Linux. It doesn’t appear in the tools → scripts menu, even though it has a checkmark in the Plugin Manager and I have restarted several times.

:sweat_smile:

In readme:

Can you check in File menu?
I put menu in this place because I think it’s a better place in file menu than in tools

Grum999

Well isn’t that just awesome! :metal:

I never liked having to navigate submenus to get to the plugins. :slight_smile:

2 Likes

I agree having everything in tools sub menu is a little bit boring.

It’s currently a “test” to see if having menu entry in usual Krita menus is not too intrusive.
I suppose, according to plugin, this could be a good hing to be in a dedicated place, or to be in usual menus.
I think it could be a good subject for debate :sweat_smile:

Grum999

Imo the file menu is the rightful place for a plugin like this. Possibly File → Export → JPEG

Anyway, it works great!

One thing I would wish is to be able to set an exact width or height. In the current implementation, if I have a tall image I want 800 px wide, I have to calculate the height first.

Ah yes, I see what you mean.
I’m not sure to be able to implement it next week, but that something I probably can do yes :slight_smile:

I didn’t think about that :sweat_smile:

Grum999

1 Like

Thank you! I haven’t tested yet, but it seems like this will save me quite some time when doing storyboards - I like to draw them in sheets of 6 frames or so, as it’s easier to keep an overview of the project that way.However, some clients prefer to just get the individual frames and cutting them out, saving and resizing has always been a bit tedious…

I forgot.

A workaround you can use, until the function is implemented:
If you set width to 800, and height to 32000 for example, then you can be sure that, whatever the dimension your image is, resized image will be 800px large and height calculated properly (ratio is kept)

But I agree that’s not natural and an option to set only width or only height could be useful.

Grum999

1 Like