Can GIMP upscale a medium or small image?

Small text as a bitmap in Gimp is always a problem. If I know the font, I replace the bitmap with typed-in text, as a text layer, that scales up any size.

If you do not know the font, then try Inkscape, import a png from Gimp, and trace it to produce a SVG. Which option you use for a trace also depends. A short word logo not usually a problem, for lines of text try a pixel art trace, like this: Originally a screenshot from this post.

…and either export that from Inkscape as a png or import the SVG back into Gimp at whatever size you like. This a comparison 245 pix wide / 800 wide.

GMIC has some awesome resize routines whether as a Gimp plugin or integrated into Digikam

2 Likes

The unique world of the command-line interface!

“Free” and “AI” sounds good!

@rich2005 you reminded me of fontsquirrel and myfonts whose websites have a free tool to identify a font from an image!

One needs a supercomputer for that!

I tried to “upscayl” a 700x700px image to 2800x2800px on an ordinary pc. The four cores of my cpu were working at 100% each. After some 15 or 20 minutes (not seconds!) a progress indicator appeared: 0,00%. 5 or 10 minutes later it showed still the same: 0%, so I killed the program.

On my pc at least this seems to be a waste of electricity…

Perhaps it works better if I buy an array of those fancy & very expensive nVidia cards that other people use to make bitcoins… :wink:

Tried that one as an appimage. What a piece of garbage programming! It just chokes on even the smallest of digital photographs. Luckily appimages get removed easily.

we are talking about this size here:

:point_down:

Nagel1_test

I have Nvidia card, but I do not think you need half an hour or super computer for that.

And here is 800px photo:

4 Likes

@Mike_Bing are you on Windows?
Execution time on Arch Linux and nvidia gfx about 3.5 seconds using @paulmatthijsse sizes.

I’m on Manjaro (ex-Arch, ex-PCLinuxOS, ex-Mandriva and even waybackwhen ex-Mandrake itself), haven’t touched Windows for almost 20 years now (except for maybe at work). But I tested it on my laptop which doesn’t have a dedicated graphics card which may explain the failure. I’m willing to give it a run on the Desktop upstairs which runs Manjaro as well but has a proper graphics card - just to test. I generally dislike software which I’m limited to run on only one of my machines so this will not be useful to me anyway.

@Claes
So repeated it on a 16Mp image from my DSLR on the desktop upstairs (with NVIDIA GeForce GTX 1060 6GB). It runs and the output seems quite decent. It’s not blazing fast and there is no way to specify output size that I see apart from the 4x option. Also not crazy about running appimages but I’ll give it a chance. Maybe it’s just the few tests I ran but I also see some minute hue changes.

The other thing that bugs me is the file selector losing its place so if I want to repeatedly process images from the same folder, I have to navigate to that folder every single time. Batch operation is not much better as it only operates on all files in a folder, no selection possible.

Theming is pretty bad as well, it does not fit my Plasma dektop theme and does its own (ugly) thing with the big rounded buttons.

FYI, I used the version available in AUR which seem the latest 2.01 This seems more like a proof of concept in its current state than a piece of software I can integrate into my workflow. I’ll come back in a month or so.

1 Like

Simply put: if you don’t like it,
then don’t use it :slight_smile:

Have you played with magick?

Addendum: magick 700.jpg -resize 400% out.jpg
performs the task in 0.62 seconds.

1 Like

Hi @Mike_Bing ,

maybe you could try this:

Thx, but no particular need for me. I was just being curious.

Hello, I tried the AppImage one more time with several images but with the same (non) result. A simple NVidia card here (GeForce 210), but Upscayl doesn’t like my machine.

Concerning speed, my pc runs all the regular photo apps (ART, etc.) without any problems.

Maybe it is due to drivers or settings. Read here if something applies:

1 Like

On my Ubuntu PC (7.5 GB or RAM and the Nvidia GeForce GTX 1660 SUPER graphic card) the program runs fast and without any problem. The upscale output is quite good.

I remember from years ago this page: Nicolas Robidoux Resampling -- IM v6 Examples

I assume they are still valid. Generally using Gimp the NoHalo interpolation is good enough for me, but for that small text, scaling 250 pix → 800 pix this produces a cleaner result

magick in.png -colorspace RGB +sigmoidal-contrast 7.5 -define filter:window=Jinc -define filter:lobes=3 -resize widthxheight -sigmoidal-contrast 7.5 -colorspace sRGB out.png

Hello, I read that, but when starting the appimage from the command line with input image and output image i see several errors. Then the GUI shows up asking me to select an image. Even a 200x200px image produces an seemingly endless loop…

I guess the problem comes from my graphics card.

paul@graveyron:~/Downloads$ ./upscayl-2.0.1-linux.AppImage ~/Bureaublad/klein.jpg -o ~/Bureaublad/klein_upscayl_4x_realesrganx4plus.png
/tmp/.mount_upscayQwBXD3/resources/app.asar
🚀 ICON PATH:  /tmp/.mount_upscayQwBXD3/resources/app.asar/main/build/icon.png
🚀 UPSCAYL EXEC PATH:  /tmp/.mount_upscayQwBXD3/resources/bin/upscayl-
🚀 MODELS PATH:  /tmp/.mount_upscayQwBXD3/resources/models
🚀 FFMPEG PATH:  /tmp/.mount_upscayQwBXD3/resources/app.asar/node_modules/upscayl-ffmpeg/bin/linux/x64/ffmpeg
Checking for update
[21401:0212/112123.152470:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization
[21428:0212/112123.601042:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization
Update for version 2.0.1 is not available (latest version: 2.0.1, downgrade is disallowed).
🚀 => fileName klein
🚀 => fileExt .jpg
🆙 COMMAND:  -i /home/paul/Bureaublad/klein.jpg -o /home/paul/Bureaublad/klein_upscayl_4x_realesrgan-x4plus.png -s 4 -m /tmp/.mount_upscayQwBXD3/resources/models -n realesrgan-x4plus -g nvidia gt218 -f png
🚀 => upscayl.stderr.on => stderr.toString() [0 llvmpipe (LLVM 15.0.6, 256 bits)]  queueC=0[1]  queueG=0[1]  queueT=0[1]
🚀 => upscayl.stderr.on => stderr.toString() 
[0 llvmpipe (LLVM 15.0.6, 256 bits)]  bugsbn1=0  bugbilz=0  bugcopc=0  bugihfa=0
[0 llvmpipe (LLVM 15.0.6, 256 bits)]  fp16-p/s/a=1/1/1  int8-p/s/a=1/1/1
[0 llvmpipe (LLVM 15.0.6, 256 bits)]  subgroup=8  basic=1  vote=1  ballot=1  shuffle=1

Yes, still valid. I explore Robidoux resampling for photos at Resampling with halo minimization

For cartoons (areas of flat colours, such as black and white, or red and green) we get strips of antialiasing (shades of mixed colours such as gray or yellow/brown). Upsampling tends to widen these strips, giving a blurry appearance.

“-sigmoidal contrast” makes dark grays darker, and light grays lighter, so gray strips are not so obvious, which can increase subjective sharpness.

Another tool is sharpening with “unsharp masking” which actually narrows the antialiasing strips. However, it also creates halos. We can eliminate halos by ensuring that every new pixel is limited to the maximum and minimum pixels within a sliding window of the input.

Any sharpening technique to reduce antialiasing also (obviously) increases aliasing, ie the jaggedness of diagonal lines, so any solution is a compromise.

1 Like