# Scaling sprites in a spritesheet without changing the overall size of each image

It might be more of a graphics software question - but, well, it concerns game development.

I'm using some free spritesheets found in the web, and basically one of the characters seems slightly scaled, causing it to poorly fit the others. I'm looking for a quick way to scale the individual images in this particular spritesheet, while keeping the original spritesheet "bounds" (sprites positions, sizes of individual images). In other words, I want to scale a whole bunch of separate image parts, without scaling the image as a whole (and without spending hours on it).

Wouldn't mind a solution using GIMP or a specific spritesheet manager application.

• What's your actual question? Note that "which technology to use" questions are off topic here. May 8 '14 at 18:12
• How regular is your data ? are all sprite arranged in a regular grid ? Are the sprite expanding their width as needed in a non-grid comic book panel fashion ? are sprite tightly packed without any uniformity ? May 8 '14 at 18:34
• It's a regular grid, every image is 128x128. May 8 '14 at 19:25
• In most engines/frameworks, you can scale the sprite that's using the sub-rect of the texture before rendering the sprite. Might be easier than modifying the sheet itself. May 8 '14 at 19:44
• Not exactly. While it is easy to do in code, I'd rather edit the spritesheet itself. Since I'm not using only one sprite and every other one is fine, I don't feel like making an exception for just one kind of images and put a lot of unnecessary "ifs". May 8 '14 at 19:53

montage *.png -tile XxY -geometry WIDTHxHEIGHT+XOFFSET+YOFFSET -background transparent NAME

Where: X is the number of columns, Y is the number of rows, WIDTH is the width of a new single sprite, HEIGHT is the height of a new single sprite, XOFFSET is half of the amount of pixels needed to make the new sprite match the original width, YOFFSET is half of the amount of pixels needed to make the new sprite match the original height and NAME is the name of the file of the new spritesheet. You calculate offsets with this formula: Offset = (OldSize - NewSize) / 2. For example, if your old size was 128/128px and after scaling it's 110/110px, you'd have to enter -geometry 110x110+9+9.