Saving Images Locally – Pixelarium

Saving Images Locally – Pixelarium 1 - steamclue.com
Saving Images Locally – Pixelarium 1 - steamclue.com

Pixelarium doesn’t have any built-in options to save an image to your computer without going through the Steam workshop, but that doesn’t mean it’s impossible! If you have crappy internet, a dislike for online image hosting, or a bizarre curiosity, you can follow this overcomplicated series of guesswork-based steps to keep your precious pixel art all to yourself.
 
 

Setup – File Locations

Pixelarium keeps its relevant files in a few different places on your hard drive. The two that we’re concerned about today are what I’ll call the main data and the local workshop.
 
 
The main data is in:
 
Steam/steamapps/common/Pixelarium
 
which is wherever you’ve installed Steam, probably Program Files or the like. You should see a folder called “files” and a very large JavaScript file called “main_data.js“. Both of these are important.
 
 
Saving Images Locally - Pixelarium - Setup - File Locations - 93ECB2C43
 
Here’s what you should see in that folder.
 
 
The local workshop is, as far as I’m aware, in:
 
[your username]/AppData/Local/Pixelarium/workshop/my
 
so if you can’t find a local Pixelarium folder on your machine there, I can’t exactly help navigate your own file system (sorry!). There might not be anything here if you haven’t touched the Steam workshop yet, but once you do, there will be folders whose names are very large numbers. We’ll be keeping an eye on this “my” folder.
 
 
 

Saving Locally

First, copy this guide somewhere, because you’re about to lose contact with Steam for a bit.
 
 
Open Pixelarium and hit “CREATE”, then load the image of your choice. I’ve chosen this hastily-drawn smiley face.
 
 
Saving Images Locally - Pixelarium - Saving Locally - C78649B6D
 
 
Before continuing, write down the image size (you only need the letter, like “S” here). Then, fill in the four required fields however you’d like (it doesn’t really matter). Turn your internet off, click “UPLOAD TO STEAM”, and wait until you see an “UPLOADING… FAILED” message on the screen. Then close Pixelarium.
 
 
Check your local workshop. Even though we haven’t submitted anything to Steam, the workshop image got saved anyway. There should be a new folder inside!
 
 
Saving Images Locally - Pixelarium - Saving Locally - E92198ED9
 
 
Open that new folder up. You’ll see three files, two of which are important.
 
 
Saving Images Locally - Pixelarium - Saving Locally - 79E7323D8
 
 
 

Loading New Image into Pixelarium

Technically, we’re all done — the image data file is right there, on your computer alone, and nobody can take it from you. But if you open Pixelarium now, you won’t be able to play on your image, because the program doesn’t know where to look for it. So we’re going to pretend that this is actually one of the stock images that shipped with the game, and update everything to match this new reality. (Please note that this was the most stumbled-into-it part of this whole guide for me, so I can’t confidently say right now what everything does. I am a monkey pulling levers, and I learned what a couple of the levers do, but not many of them.)
 
 
At this point, you can turn your internet back on; nothing else is going to happen.
 
 
First, let’s go to your main data folder and open up that file main_data.js in a text editor of your choice. I use Notepad++, but Windows’ standard Notepad should be okay too, provided you have line wrap turned on.
 
 
Saving Images Locally - Pixelarium - Loading New Image into Pixelarium - A3FBA178B
 
 
Well, that looks pretty scary. But at least it also looks regular; every line has the same structure, because each describes one stock image in the game.
 
 

  • “i”: The ID number of the image. Each image has a unique ID, and our current image will need a new one (or we can use the giant number it started with – let’s come back to that).
  • “c”: The categories under which the image appears. The fact that commas are on the beginning and end is pretty weird, but those numbers just correspond to the categories in the order they appear on the menu; 0 is “PICTURES”, 1 is “ANIME / MANGA”, and so on. Images can have multiple categories, of course.
  • “k”: I’m like 95% sure this describes the size of the image, in letters. 0 means XXS, 1 means XS, and so on up to 5 for XL.
  • “t”: The title of the image. Pretty self-explanatory. Seems like you can leave this as “”, the empty string, for no title.
  • “g”: This is the color of the image background, expressed as a decimal. Let’s say “g”:12907519. If you google “12907519 to hexadecimal”, you get C4F3FF, which is an RGB code. However, for reasons I do not understand, the actual RGB color of the background in that case will be FFF3C4 (that is, the two-character blocks are placed in reverse order). Follow these instructions in reverse to turn an RGB code into the decimal number.
  • “a”: I don’t know this one. A bunch of images have this at 0, so we can probably leave it alone.
  • “b”: This is a list of large numbers, but each of those is just the decimal version of an RGB code. Seems reasonable enough to say that this is the list of pixel colors.

 
So we’re going to add one line to main_data.js with the same format as all of these. How do we get the data? Well, head over to your local workshop, into your new folder, and open that .ini configuration file!
 
 
Mine reads like this:
 
 

eyAiYiI6ICJbMTY3NzcyMTUsNzAzOTg1MSwxNTkyMTkwNiwxMDU5MjY3MywzNTUyODIyLDQ0MDgxMzEsMTIzNjkwODQsMjYzMTcyMCwxNzc2NDExLDUzMjkyMzMsNzk2MDk1MywxMzIyNDM5Myw4ODE2MjYyLDg1NTMwOSw2MTg0NTQyLDk3MzczNjQsMCwxMTQ0Nzk4MiwxNTAwMDgwNCwxNDE0NTQ5NSwxNTkyMTkxOSwxNTAwMDgzMSwxNDk5NzUwMywxNDE0NTUzNSwxMzIyNDQ0NywxMTQ0NDcyMiwxMjM2OTE1MSwxMTQ0ODA2Myw5NzM3NDU4LDExNDQ4MDUwLDg4MTYzNzAsMTA1ODk0MjYsMTA1OTI3NTQsMTIzNjU1NjcsOTczMzg3NCw4ODEzMDQyLDc5NTc0OTAsNzAzOTk4Niw3OTYxMDc0LDYxODQ2OTAsNzAzNjY1OCwxMzIyMTExOSw2MTgxMzYyLDUzMjkzOTQsMzU0OTQyNiwzNTUzMDEwLDUzMjU4MTAsNDQwODMwNiwxNDE0MTk1MV0iLCAiaCI6ICJWZXJzaW9uIDEuMCIsICJkIjogIkFuIGV4YW1wbGUgb2YgaG93IHlvdSBjYW4gc2F2ZSBpbWFnZXMgbG9jYWxseS4iLCAicCI6ICJUaGVfSnNhdXIiLCAidCI6ICJTbWlsZXkgVGVzdCIsICJ2IjogMy4wMDAwMDAsICJ4IjogMS4wMDAwMDAsICJnIjogMC4wMDAwMDAsICJpIjogIjY4NTY3ODk1NTczMjY1NzUxMjAiLCAiYyI6ICIsYSwiLCAibyI6IDAuMDAwMDAwLCAiYSI6IDAuMDAwMDAwLCAicyI6IDEzMjk2ODk4OS4wMDAwMDAgfQ==

 
 
This is base64. We can turn it into normal ASCII text with a converter like this online one – [base64decode.org] , and we get:
 
 

{ "b": "[16777215,7039851,15921906,10592673,3552822,4408131,12369084,2631720,1776411,5329233,7960953,13224393,8816262,855309,6184542,9737364,0,11447982,15000804,14145495,15921919,15000831,14997503,14145535,13224447,11444722,12369151,11448063,9737458,11448050,8816370,10589426,10592754,12365567,9733874,8813042,7957490,7039986,7961074,6184690,7036658,13221119,6181362,5329394,3549426,3553010,5325810,4408306,14141951]", "h": "Version 1.0", "d": "An example of how you can save images locally.", "p": "The_Jsaur", "t": "Smiley Test", "v": 3.000000, "x": 1.000000, "g": 0.000000, "i": "6856789557326575120", "c": ",a,", "o": 0.000000, "a": 0.000000, "s": 132968989.000000 }

 
 
Aha! Not exactly the same format; there’s a few more letters, and the ordering is all wrong. Let’s make some tweaks real quick:
 

  • Set “g”:0 and “a”:0, removing the decimals. I don’t suspect this is important, but you never know. You could set g to some appropriate number if you want a non-black background. Honestly, if you configured this in your original custom-image setup, it’s probably already non-zero and you don’t need to worry about it.
  • Remove the quotes around the “i” number. You can also change this to some other unique value if you want; as an example, let’s set it to 100001.
  • Cut out “v”, “x”, “h”, “d”, and “s”. I’m sure those were important, but oh well.
  • Rearrange everything else to fit the format in main_data.js.
  • Add a value “k” in the right spot, where the number corresponds to our original image’s size (S means 1)!
  • Change the contents of “c” to be the categories we want. Let’s say we want to put our smiley face in categories 0, 4, and 7, which are probably not very appropriate, but oh well.

 
Our new line looks like:
 
 

{"i":100001, "c": ",0,4,7,", "k":1, "t":"Smiley Test", "g":0, "a":0, "b": "[16777215,7039851,15921906,10592673,3552822,4408131,12369084,2631720,1776411,5329233,7960953,13224393,8816262,855309,6184542,9737364,0,11447982,15000804,14145495,15921919,15000831,14997503,14145535,13224447,11444722,12369151,11448063,9737458,11448050,8816370,10589426,10592754,12365567,9733874,8813042,7957490,7039986,7961074,6184690,7036658,13221119,6181362,5329394,3549426,3553010,5325810,4408306,14141951]"}

 
 
(The formatting on this page doesn’t like this, but that’s all supposed to be one line; there’s no line breaks in there.)
 
 
Stick a comma on the end of that, and then copy-paste it right after the last big line in main_data.js, before the closing brackets.
 
 
Saving Images Locally - Pixelarium - Loading New Image into Pixelarium - 6E751D734
 
Glorious.
 
 
Finally, we’ll have to change the .pkg file in our local workshop. Set its name to “f100001” (replacing that number with whatever you’ve put under “i”), then cut and paste it into the “files” folder in the main data folder.
 
 
Saving Images Locally - Pixelarium - Loading New Image into Pixelarium - 518A4B852
 
Here’s what that’ll end up looking like.
 
 
At this point, once main_data.js has been updated and the new .pkg file is in that “files” folder, that’s all we needed to do. In fact, you can go and delete the stuff in your local workshop, if you really want. You don’t have to, but, y’know, do whatever.
 
 
Open up Pixelarium, select one of the categories that your image is in, and scroll all the way to the very bottom…
 
 
Saving Images Locally - Pixelarium - Loading New Image into Pixelarium - 835A5E499
 
 
Success! You can hop right into that image and start playing just like normal.
 
 
 

That’s All I’ve Got

If you suffered through all of that, congratulations! Thank you so much for reading my guide! I don’t even really know what you would do with this information, but consider it yours to keep and pass along!
 
 
If you have any questions, you can ask them below, but there is no guarantee I can handle anything on your own computer, which could work very differently from my own.
 
 
I will, ideally, continue investigating the variables in main_data.js and the .ini files for workshop items, but practically speaking, don’t expect dramatic progress on that soon.
 
 

Written by The_Jsaur

 
 
This is all we can share for Saving Images Locally – Pixelarium for today. I hope you enjoy the guide! If you have anything to add to this guide or we forget something please let us know via comment! We check each comment! Don’t forget to check SteamClue.com for MORE!
 


Be the first to comment

Leave a Reply

Your email address will not be published.


*