• Advertisement
Sign in to follow this  

Bitmap Graphic Needs Smoothing

Recommended Posts

Hello.  I have a 96 x 96 bitmap and want to make it four times bigger.  After it is this enlarged size I want to make all of it's edges smooth (probably using antialiasing.)  I have Gimp and Inkscape and can't get any real sort of workings.

Is it antialiasing and how is it be done?  The bitmap image is on a single color background, brown.

Thinking about it, I suppose it will be drawn on a single color background too!



Edited by Josheir

Share this post

Link to post
Share on other sites

The operation you want is called "magnification filtering" or "resampling", not antialiasing. You can't avoid blockiness easily because the original image simply doesn't have enough data to uniquely fill the larger area, but you can choose a smooth filter like bicubic, to trade accuracy for visual smoothness.

Edited by Nik02

Share this post

Link to post
Share on other sites

In Gimp when you scale there should be a : Select Interpolation method. Try out a few and see if your happy, if not try downloading a new Interpolation method.

There is free software that focuses on this, but even they are limited.


If you want pixel perfect results, you should use no Interpolation method. That should just increase the pixel size. 1pixel -> 4pixels of the exact same color.

This allows screens to then scale it down again without breaking the image. If your making a pixel art game this is how you would do it.

Share this post

Link to post
Share on other sites
On 2/2/2018 at 7:06 AM, Kryzon said:

The cutting edge tech in image resizing is using neural networks:

Had to try it.

It just uses cubic and some noise that I think it collects from images. Really bad results on both photos and hand drawn art. You will get better results with Photoshop and some filters.


Maybe one day it will be good, worth watching.

Share this post

Link to post
Share on other sites

Without you posting any proof I'm gonna have to call your bluff.

Someone else compared it with standard cubic resampling (using Photoshop, but cubic resampling is present in almost any image editor one can get). They had a different experience than yours.


"Photoshop 16x bicubic:"

"letsenhance.io 16x (ran twice):"

Share this post

Link to post
Share on other sites
17 hours ago, Kryzon said:

Without you posting any proof I'm gonna have to call your bluff.

With my first try I also used a image from the net, when I noted how near the two was I grew suspicious. The next two tests I ran using a image I drew and a photo of me.

I have no more images scaling left and I am not going to upload my photo, so here is only my hand made try with the "Boring" scale:



This is a jpg icon I used for a game I planned. It was very badly made as it was for planing, I can already feel the judgment.

Let's Enhance .io:


Now my result using Photoshop:

I used (Scale*2(Cubic)-> Remove noise)*4


Even without downloading you will see it's better. That wonky eye is really disturbing.


The black is the difference between my Cubic scaling and there scaling.


I am not uploading the photo, it was taken at work and we are not allowed to take photos of the studio also I am ugly. The results using the "Magic" scaling with my photo was even worse than the "Boring" scale. (Once I can use the page again I will take a photo and show it here as well.)


My scale trick is lower quality than most free scaling software out on the net, you can find tools that scale much better than me. Even so I was able to do better. Let'sEnhance.io < My Cubic scale < Free scaling software.


Why we should watch this software:

The image I used from the google search was near perfect. Now this could mean they where cheating and used google search to find the larger image.

What I am hopping is that because there was more info for that image the results was better, because this would mean that with time the software will get better as the developers improve and the AI collects data.


For now it's good, but anyone with Photoshop could do better and most other free scaling tools are much better.

Edited by Scouting Ninja

Share this post

Link to post
Share on other sites

Thank you for sharing. Your Photoshop scaling method is interesting.

When you compare both versions (letsenhance vs ps), they have some slight shape differences (at the outer edges of the ears, for example). One of these versions might be more faithful to your original design (the one named Original), in case you downscaled it to make that thumbnail, so this is a way to tell which method is best.
If you drew it small like that then I don't think there's a reliable way to know which method is best, it's subjective.

I'm not sure how they trained their AI. I would guess they took HD photos, downscaled them and then told the AI "to take this low-res image input and generate this HD image output". You do that a lot of times until you have a generic model for that AI to upscale small digital photos.

Maybe their model works best with photography (pictures taken with digital cameras), rather than man-made images.
For example, someone trained an AI model to specifically upscale anime-style images: http://waifu2x.udp.jp/

Edited by Kryzon

Share this post

Link to post
Share on other sites
28 minutes ago, Kryzon said:

If you drew it small like that then I don't think there's a reliable way to know which method is best, it's subjective.

The 128*128 is the large image, it was made for a Icon of 64*64. It was a Tiny study on shading. Never knew it looked that bad so large.


39 minutes ago, Kryzon said:

Maybe their model works best with photography (pictures taken with digital cameras),

As I mentioned I did try a selfie and the results wasn't good, blurry an noisy.

If the amount of images hasn't re-filled by this weekend I will donate to them. I want to see how good it is with outdoor images.

When you think about it there is more outdoor images on the net than indoor, so maybe it has better training with them. Either way I want to see what it really can do; this time I will be compare it to free software.


48 minutes ago, Kryzon said:

someone trained an AI model to specifically upscale anime-style images: http://waifu2x.udp.jp/

Thanks for this one. A quick try with a rough sketch shows it is great. It produces good results very fast, so you only need to use it once or twice.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Advertisement
  • Advertisement
  • Popular Tags

  • Advertisement
  • Popular Now

  • Similar Content

    • By Allagia X
      An original fantasy RP game needs dedicated, self-motivated, and chill individuals! We have a story and general plot already set up, ready to be expanded upon. 

      Miasma: Twilight Decree is a 2D roleplay adventure game. It’s set in a unique fantasy world with a vast map containing continents and oceans alike. Players are given one objective: to endure the troublous environments Allagia have to offer and successfully progress through time to reach the Age of Technology. The stakes are high, and every character’s actions can alter the world – or reset everything back to the beginning ages. MTD features a blend of survival aspects, dark themes, with the ability to make a mark in the history books.

      What we're currently looking for:
      • Writers - Super creative individuals who have experience in lore-making, world-building, and know their way around fantasy writing. All of the general elements are here [setting, plot, etc.] and need some "fluffing out"[quest lines, clans/ factions/ families, etc.]. Bonus points to those who can whip up spells and skills.
      • Artists - Mainly those who specialize in pixelated art, or people who can make concept art [since we lack pictures]. 
      • Project Manager - Someone who is organized and can keep this project on the rails. As thorough as I am, it's difficult to cover all the bases on my own. 
      • Other Positions - Anything else to fill in the gaps. We currently use Wikidot for our wiki; someone with CSS and syntax experience to polish it up would be awesome. A musician/ composer for all things musical. Way later down the road, we'll need community managers, DMs, and the such, though it isn't necessary at the moment. 

      Other information:

      I've been working on this project since the beginning of 2017 with a group of friends. Life basically prohibited a lot of us from continuing on with it, and it went on hiatus for a while. I'm making an attempt to bring this back from the dead since plenty of time and effort went into it beforehand. It goes without saying that I also have a passion for roleplaying. 

      I cannot stress enough that anyone interested should be into fantasy settings or D&D. Otherwise, you're probably not going to have fun with helping!

      We do have a Patreon with a few supporters, and Discord. Until things really start moving, we'll be using Discord to collaborate. 

      For any questions, comments, or concerns, feel free to comment below or add me on discord @ Allagia X#9174 [best method of contact] for more info about this project.
    • By Manuel Berger
      Hello fellow devs!
      Once again I started working on an 2D adventure game and right now I'm doing the character-movement/animation. I'm not a big math guy and I was happy about my solution, but soon I realized that it's flawed.
      My player has 5 walking-animations, mirrored for the left side: up, upright, right, downright, down. With the atan2 function I get the angle between player and destination. To get an index from 0 to 4, I divide PI by 5 and see how many times it goes into the player-destination angle.

      In Pseudo-Code:
      angle = atan2(destination.x - player.x, destination.y - player.y) //swapped y and x to get mirrored angle around the y axis
      index = (int) (angle / (PI / 5));
      PlayAnimation(index); //0 = up, 1 = up_right, 2 = right, 3 = down_right, 4 = down

      Besides the fact that when angle is equal to PI it produces an index of 5, this works like a charm. Or at least I thought so at first. When I tested it, I realized that the up and down animation is playing more often than the others, which is pretty logical, since they have double the angle.

      What I'm trying to achieve is something like this, but with equal angles, so that up and down has the same range as all other directions.

      I can't get my head around it. Any suggestions? Is the whole approach doomed?

      Thank you in advance for any input!
    • By Terry Jin
      Hi everyone! 

      I am from an indie studio that has received funding for our concept and is ready to create the next generation 2D Pokemon-inspired MMORPG called Phantasy World. This ad is for a volunteer position but hopefully will transition into something more. Our vision is to create a game that draws inspiration from the series but is dramatically different in both aesthetics and gameplay as the work would be our own.
      We are hoping that you can help us make this a reality and are looking for game developers familiar with the unreal engine and would be happy to work on a 2D top down game. Sprite artists are also welcome as we are in desperate need of talented artists! Join our discord and let's have a chat! https://discord.gg/hfDxwDX

      Here's some of our in game sprites for playable characters while moving around the game world! Hope to see you soon!

    • By Sean Meredith
      Hi all, I am starting to develop a tactics game and ran into a problem I had not thought of. I began by drawing a screen with a hex grid, and this is no big deal. I got that working fine. But, I realized it didn't look quite right. This is because in most strategy games, you're not looking straight down. There is a bit of a tilt. Attached is an example of what I mean. The hexagons on bottom are larger than the hexagons on top, and I'm unsure of how to go about adding this effect. Especially when you consider that some maps may be of different sizes. 
      I'm not sure if this is the right place to post something like this, but it seems as though some sort of linear transformation would be applied? No? I don't even know where to begin in a problem like this.

    • By nick1

      I have limited programming experience in C++, but have always had a passion for games.  Where do I start?  I have a rough idea of the type of game I want to develop and am ready to commit the time necessary to learn new languages.  Are mobile games too difficult to begin with? Should I begin learning the basics of keyboard controls before attempting touch screens?  I would appreciate any input or advice!
  • Advertisement