Pixel Art iPhone/iPad app
Hi All,
First of all I'm not an Artist, i'm a programmer, but I wanted to let you know about an app I've just submitted to app store for doing pixel art - it includes animation and layers as well as import and export of tile maps or export to animated gifs.
I've only just submitted it and used some really nice character art I found on this site which is public domain.
Keep your eyes out for Pixel Art Pro - it should be live within a few weeks all being well.
Here is a screen shot with the artwork from skoam - http://opengameart.org/content/fumiko-complete-charset
Hope you like the app,
Thanks, Dan
Attachments:
I would love a good pixel editor on iOS. Will keep an eye out. thanks!
https://withthelove.itch.io/
Cool, I might be able invite you to use it on TestFlight for free before it goes live if I can remember how to use it, but I think I would need your email address for that. If you send it to me at dan@cuffedtothekeyboard.com - I'll add you as a tester and you can have a play wit it.
Pixel Art Pro has now been accepted by Apple, here is a link for anyone who is interested in checking it out:
https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=11591...
If you ask me nicely I'll give you a promotion code so you can get your $1.99 back
Wow! Just fired this up on my phone and all I can say is bravo!!
This is great!! I could actually see myself using this to create sprites for a game!!
A while back (probably 2-3 years now) I tried a bunch of different pixel editing apps and nothing came close to this! They all felt more like things you could doodle with. What you've done feels much more suited to actually creating production art. I love it!
Will load on my tablet and try creating an actual sprite and let you know how it goes.
Only feedback from my brief initial encounter is that it'd be great to be able to create colors with RGB and HSV sliders. Just my habits I guess but I like to start with a base color then use S and V and a touch of manual rgb tweaking to create a color ramp for it.
https://withthelove.itch.io/
Thanks a lot Capbros, you have made my day - it is always difficult on launch day worrying if anyone will download it or not etc. But I'm glad I have one happy user already.
I'm with you on the colour mixer - actually it is a bit weird, using hsv, but i change the brightness and hue in the big square and then saturation on the slider and alpha. But it goes a bit weird when the slider is not very saturated, turing it up always makes it go more red until you move it on the background image when it it somewhat saturated - I'm not really sure why this is. I think it is something to do with the conversion to RGB space.
At first I used brightness or value on the slider while using hue and saturation in the square but I wasn't sure which way around to do it.
I added RGBA text box at the bottom in case you have some existing colours you want to copy accross from a project. But I'll improve the colour picker in the next version.
Do you think it would be better to only have sliders and skip the square thing? or maybe have a choice?
One other thing, importing tile sheets is a bit weird, there is a video showing you how here:
https://www.youtube.com/watch?v=0SrKbA9XgUU
You have to go into your photo's and then post it to your app, on iOS 10 you will get a notification which will take you to the tilemap in the app. On iOS 9 there isn't any local notification, but when you go in to add a new project it will invite you to choose new project or create from tile map.
Anyway, have fun with it - please tell your friends or leave a rating on the itunes - ratings help when trying to aquire new users!
Do you want me to send you a promo code so you can get your money back?
I am curious is the gif format open now. I would say 25 years ago you had to pay royalties to use the gif format. I am assuming some time between now and then it was changed.
According to Wikipedia, the last patents on gif expired in 2004.
https://en.m.wikipedia.org/wiki/GIF
https://withthelove.itch.io/
The iOS SDK provides a way to export animated GIF's but it is not supported very well, i.e you can't load them and play them back very easily. Even the photo's app doesn't play GIF's, you have to put them on a web page, or send them in text message for them to show up animating.
I'm assuming that if the iOS SDK allows you to export without needing any 3rd party exporter code someone has paid the royalties somewhere - Apple probably paid for it otherwise they wouldn't let the app onto app store.
I think apple would prefer if everyone used their live photo's thing instead.
Oh right thanks for letting me know, there does seem to be a lot of gif/Emogi type apps out there at the moment. I think the flip book people have open sourced some gif playing sdk - they had problems trying to play multiple gifs at once efficiently, so most of the code seems to be related to handling that. I haven't tried it though
No need to send me a promo code, even as is, the app is well worth $1.99!
Gimp's color selector does:
Value on X
Saturation on Y
and
A vertical slider for Hue.
Uploading a snap of it.
I'm guessing Photoshop is the same.
I find that arrangement to works quite well.
The immediate issue I was having with the layout in Pixel Art Pro was the hue shifting around when I just wanted to adjust the brightness.
I think the square thing with HSV and RGBA sliders underneath it would be great. Having the numerical values next to the sliders is also a nice touch.
The other thing I was missing was a dot on the graph to indicate where the current selection was.
Loaded this on my tablet last night and it worked great! I work in 16x16 tiles and sketching with my finger on my 9.7" tablet was perfect. I'd probably want to use a little stlylus to do higher res or work on my 4.7" phone, but it would definitely be doable.
The animation editor was awesome! Very striaghtforward to use.
Only bummer for me is the frame rate options. My crummy pixel art animations never have more than 2-3 frames, so 6 fps is waayy too fast! :) Any thoughts on adding a few lower values on there (1,2,4,etc) or an option to set the rate manually? Truthfully an option to set the delay between frames in milliseconds would be best for me, but I can see where that's probably not that useful for most users.
One big question, where do the images go when you export them? I thought they'd go into photos (perhaps into a special 'pixel art pro' folder?) but I couldn't find them there. If possible (and simple) it'd be great to have an option to export them straight to an email send your userid (or an email addr you set). It probably sounds clunky, but that'd actually be the easiest way to get them off the device for me (and maybe other folks who haven't gone 120% deep into the iTunes lifestyle ;)
The option to save/load a palette or share palette's between images would be great.
As would the ability to import a palette from somewhere else, like an existing image. This might be specific to me, but I always keep a PNG around with my palette for a project laid out in squares, so something that pulled all the colors from an existing image would be perfect for me.
To make it super pixel art friendly, you might consider providing a few ready made palettes such a NES variant or two, SMS palette, C64 palette, EGA palette, DB16 and DB32 palettes. Just an idea. Maybe it's you can name a color set and toggle between the different sets you've made whenever you like.
You get the idea. Overall, I would just say that's the part that needs the most work because the thought of manually creating the colors for each image everytime is pretty daunting.
I'd add that the massive palette it starts with is not that useful. It's simply too big to sift through looking for the color you want. Better might be just a simple 16 or 32 color rainbow and the idea is you just use that pick a base and then edit from there.
Well I'm sure that's enough feedback for now, will let you know if anything else strikes me as I use it.
thanks again, this is a great tool! gave you a four star rating and a short review. Just four for now because figured I should leave room for growth as you update it! :)
> it is always difficult on launch day worrying if anyone will download it or not etc.
Definitely know that feeling form launching stuff on other platforms, but can only imagine how tough it must be on IOS.
https://withthelove.itch.io/
gimp-color-selector.png 22.6 Kb [2 download(s)]
Thanks Capros,
Lots of good ideas for improvements around the palette and colour picker. It would be good to be able to save/load in palettes and have more consistent mixer. Preset palette is a good idea too. I think I may have rushed things a bit just to get it out. One problem is if you change your data model in core data it will break the existing data, so I'd have to import/export palettes without changing how it stores things otherwise an update would delete all existing data/projects. I may be able to add a new dab just for colours and add it without breaking anything?
I'll think about all this for future updates - thanks again.
It looks like you are the first and only person to download the app so far - thanks for that too - let's hope I get 2 Downloads tomorrow!
Cheers, Dan
Well the god news is you can make whatever changes you want to the data format while I'm still the only user!
i certainly won't mind!
Is the palette stored with the image? Is the image data itself palettized (ie are pixels stored as rgba colors or references to the palette?)
If you treated palettes as a global construct, then you could just save palettes out with the general user config data.
Think of them as part of your general toolbox, their just sort of a lost of colors you can bring up whenever you like, as opposed to being tied to an individual image.
For older images you could just leave the palette info in the save data but just kind of ignore it.
well that's my 2 cents without knowing the first thing about how the app is structured, hope it's not too obnoxious.
https://withthelove.itch.io/
The colours are stored per pixel I'm afraid, one of the nice things about the older image formats like IFF on the amiga etc was that if you changes a colour it would change all the pixels of that colour in the image. So I just Store the palette as in core data as a table of Int32 values for each colour RGBA value. But the palette table is linked to the project which has values like canvas size then links to all the frames which in term link to all the layers. The undo/redo history is separate though, so I could maintain a table of palettes separate from the projects or I could have an import/export palette thing which posts it to a server somewhere. So far this app is completely local to the device - no back end. The server method might be the best because it would also allow people to share work - I emailed this site actually to see if they had an SDK
"IFF", "AMIGA"?!? No wonder I love this app so much!! I'm an old school Amigan myself with many an hour of Deluxe Paint IV under my belt! :)
> one of the nice things about the older image formats like IFF on the amiga etc was that if you
> changes a colour it would change all the pixels of that colour in the image
I know just what you are talking about! I use GIMP nowadays and can't tell you how man times I've done a 'select by color' + 'fill entire selection' just to update a color in my working palette.
Well maybe a simple solution is this:
Separate from image data, you can maintain a set of color palettes.
Add an 'export palette' option that allows you to save the current palette as a named entry in the set of palettes (eg 'My First Palette'). This would just save the list of colors from the current image.
Add an 'import palette' option that simply adds all the colors from a stored palette into the current image. For simplicity, you could literally just add the colors to the end of the current palette completely independent of the existing image. Meaning 'importing' a palette would not change the current image at all. This could also lead to duplicate palette entries (if you import a color that already exists in the palette), you could add code to check for and handle this, but honestly it's not even needed.
Add a box to 'New Image' that let's you choose the starting palette for an image.
Optionally, add a few preset palettes (NES, SMS, C64, Amiga, DB16, DB32, etc) for folks to chose.
Starting with a blank/empty palette would also be a nice option.
Images are still stored in the same format as now (int32 per pixel, palette attached, etc.) nothing changes there.
I wouldn't bother with anything using a server backend for now. Perhaps it's just my old school way of thinking, but I'd say, get it working nicely locally and then worry about adding any networked features.
The above would certainly cover my own use cases. Basically, I would just start an image with a blank palette, add the colors from the palette for my project, then export that palette as 'My Project's Palette'. For new images I'd just start them with 'My Project's Palette' or start with a blank palette and load that one in.
As you point out, if I ever wanted to change one of the values in my palette, that'd be kind of a nightmare. I'd have to go back to each image individually and find and change the pixels by hand. But for me, that's not too likely, my palette is pretty set at this point in the project. Also, in the worst case, I could just export the images, load them into GIMP, do the color swap and then import them back into Pixel Paint Pro. So it wouldn't be the worst thing. Down the road you could add the same options Gimp has for doing this kind of thing (select by color, etc).
From what you have said, I think this should be possible without making any changes to the existing data files and formats, but again that's just a guess without knowing too much about how your project is setup.
I still can't figure out where the images go when I export them, any ideas? Do I need to manually give the app permission to write to photos or something? or does it just stick the sheet onto the copy/paste buffer or something?
thanks and keep the faith! This is a great tool! IOS app store is hopelessly crowded, but if we spread the word around OGA and elsewhere hopefully we can get you a cult following at least! :)
https://withthelove.itch.io/
Thanks Carpos,
Lots of good ideas there about palatte export/import etc. I'm definately going to do more around the pallete on my next release - i'm not feeling particularly motivated to do anything on it just now, but when I do I'll redo the palette picker and introduce save/load palette, it would be good to have a way to globally edit pixels. I've noticed a few small bugs as well that need sorting out - sometimes flipping an image and pasting it resamples when pasting when I want it to be 100% the same pixels it does antialising - at fisrt i copied pixels manually and this didn't happen, but I swapped it for a faster core image method and didn't notice the issue. Also, I think the Alpha is channel is a bit weird, when drawing it goes bright, then when I undo and redo it renders more faintly? One other thing after going to the palette and back to the app it always jumps to the last frame rather than returning to the frame you were currently editing. So there are a few bits to sort out for the next version.
A few other things I was thinking - It might be good to have a way to merge layers, also being able to set the background as reference images rather than just changing the background colour for people that work from drawings?
I've had around 10 downloads now, so not too bad - but considering the number of iPhone/iPad users in the world its still pretty terrible.
Thanks for your rating on app store by the way, I can see it, but I need more ratings before they show up in app store to everyone else.
Thanks for your general support and interest here as well as your suggestions. Lets hope it picks up over the comming months.
Cheers, Dan
Sorry in answer to your question, exporting should put them into your photo album along with your other photos - you do need to allow it when asked though - if you said no the first time you would need to go into settings and allow it again - Normally you would go to the Pixel Art Pro under apps then it will take you to settings specific to that app - Note it only exports as a tile sheet or as an animated gif though. It doesn't import as a series of images.
Hi Capbros,
Just thought I'd let you know, I've submitted a new version with your suggestions in mind as well as a few bug fixes - I think the not saving correctly sometimes might have been one of them - I think it was a race condition where the exporter was using selected projects but I was deselecting them on the UI directly after exporting but the export runs on a seperate thread so it could be that the selected projects are empty when it tries to export.
New features include:
A new colour picker more in line with the GIMP one. It seems a lot better, the only downside is that on older devices like my old iPad mini it isn't very fast because changing the hue requires the colour square to be redrawn which is slow as I do it pixel by pixel in the CPU. It would be posible to speed it up using openGL and a shader but that seems like a lot of work just for a colour picker - one day maybe?
I added the ability to start a new project with a retro palette from ZX Spectrum, C64, Nintendo NES, Apple II. Later 16 bit machines didn't seem to make sense because although they had limited colours per screen the palette was usually indexed from a large array of colours such as 32 colours from a palette of 4096 on the amiga for a 5 bit plane setup.
The ability to copy palettes from other projects, the way you do this is a bit unituative unless you know what to do. Basically you click the select button as if you are going to export but then hit the plus key - if you have one or more projects selected it will give you a menu option to import palette from the selected projects. Note this takes the palettes from the projects - it doesn't try to get them from the images as that would require going through every pixel for every layer of every frame.
I do however offer that option when importing from tile maps in case you have tiles created somewhere else or downloaded and you want to do edits with the same palette. After selecting the tiles it will ask if you want to derive the colours from the tiles. The only think I've found with this is that it can be a little slow and memory intensive if there are lots of images and lots of different colours - again not an issue on the new devices but on the old ones it makes things laggy - particularly with large palettes I think just because of having to load them and save them more than just extracting them from images.
I've also addes some slower frame rates for playback as you suggested, you can now do 1, 2, 3, 4, 5, 6 frames per second, then it jumps to 12, 24, 30, 40, 50, 60 fps. I agree the slow frame rates are quite good if you want to see how the animation looks in detail while tweeking even if your eventual playback speed is higher.
Thanks for your recomendations on this, a new version should show up in the next few days i guess.
Cheers, Dan
PS. attached are screen shots fo the new colour picker on iPhone/iPad
Simulator Screen Shot 9 Oct 2016, 20.43.52.png 679.2 Kb [0 download(s)]
Simulator Screen Shot 9 Oct 2016, 20.46.51.png 160 Kb [1 download(s)]
Awesome DanXS!
Thanks so much for staying at it! I was worried you'd get discouraged and give up.
All these changes sound great! The new palette selector looks awesome! Can't wait to check it out!
Gotcha about the more advanced palettes. One palette you might consider is DawnBringer's mega cool 32 and 16 color palettes:
http://pixeljoint.com/forum/forum_posts.asp?TID=12795
http://pixeljoint.com/forum/forum_posts.asp?TID=16247
These are pretty popular and used in a lot of amazing work on OGA. Bart's also posted his own variant of DB32 somewhere on OGA, will try to find it for you.
There's also a few variants of NES out there. Depending on how deep you've gone into the NES emulation scene, you may or may not be aware that there is a huge discussion out there about what the 'true' NES palette was. The mathematically computed palette from the NES's internal digital bits is the most common variation you'll see (on Wikipedia this is just given as the NES palette), but there's substantial debate about what became of that digital palette when it was converted into an analog singal and displayed on notoriously wonky CRT screens. There are literally dozens of different palette variations which people have generated by manually comparing a games running on a real NES on a CRT to the same games running on an emulator on a PC with a modern LCD display. It's definitely a subjective science, but some folks swear by one or the other different variations as delivering the most authentic NES experience and doing true justice to all that glorious pixel art.
To save you the trouble, I'm going go ahead and attach DB32, DB16, Barts's DB32 and some popular NES variants here. I know this is all just gravy so if you're tired of dealing with palettes and don't want to be bothered, I totally understand. If wanted to just a do a few more, I'd say the DB16 and DB32 would be your best bet, these are very popular and you see them used in alot of pixel art on this site and elsewhere.
oh, my animations always play at much slower rates! When you've only got 2 frames you can't cycle through them that quickly! :)
Oh and I should have posted sooner, I figured out the export bit, I'd just missed the image in the camera roll. Serioulsy, it was there, I just didn't see it because it was small and mostly empty so it blended in with the backdrop in the photo viewer.
Thanks again for staying at it! Can't wait to get the update! Have already done a few sprites with the old version, when I get something I really like, I'll post it back for you to see.
https://withthelove.itch.io/
db16_v1_analyze.png 13.3 Kb [1 download(s)]
DB 32 and Bart's variant
https://withthelove.itch.io/
db32_v1_analyze.png 17.8 Kb [3 download(s)]
bright17-analysis.png 9.3 Kb [2 download(s)]
NES variants
https://withthelove.itch.io/
NES_BMF-3.png 967 b [2 download(s)]
NES_firebrandx_fbx_v3.png 964 b [2 download(s)]
NEstopia-RGB.png 746 b [2 download(s)]
NES_palette_with_ramps_Surt.png 2.3 Kb [3 download(s)]
And as long as I'm piling on, here's a fun one, this is the standard ink palette used by all comic books from through about the 1990's.
https://withthelove.itch.io/
Comics-palette-63.gif 23.8 Kb [21 download(s)]
Again, if this is overwhelming or annoying, don't worry, you can just ignore it all. Just tossing some ideas out threre, but I totally get that you are not here to just add palettes to your paint app for me. :)
https://withthelove.itch.io/
No thanks for your input, good to know what the pixel artists actually want so I can make it useful to you all. You are my target audience after all, well you and other pixel artists - hopefully!
I've added one Ness palette, it looks a bit like the BMF-3 one I think? I took out the duplicate blacks that are in it for some reason probably more to do with hardware than anything?
Looks like DawnBringer has really been getting into palettes in a big way.
I'll maybe add more over time? I've not made a proper list view selection though, they are just menu times saying:
ZX Spectrum
C64
Apple II
Nintendo Nes
I might run out of room and have to make a seperate view controller for them with a scroll bar etc.
Anyway now you can copy palettes between projects so if you add your own custom colours you can move them accross to new projects if you want.
Hopefully it's a bit better than it was anyway.
Cheers, Dan
I know you paid $2 for it, but I thought I might drop the price to $1 for a week just to drive some more downloads otherwise I fear it might sink down to the bottom of the app store. Sorry you got it at the wrong time - I'm just worried it isn't really getting noticed.
I don't know. Personally, I think the app is plenty worth it at $2 and I'm not sure taking $1 off is going to suddenly net a lot of downloads. But then I won't even pretend to understand the voodoo economics of the app store.
I wish I knew of where to tell you to go to try and promote the app with other pixel artists.
I keep checking, can't wait for the new updates to come down!
https://withthelove.itch.io/
Yep, you could be right, i've done it before with other apps but usually make it free for a week, then end up just having it free all the time. I think there are sites that are dedicated to finding apps that go free or get a price drop - they seem to trigger a lot of downloads for a day or two then it goes back to normal. But that has been with the going free thing I've tried it. Anyway, I've just done it for a week so it doesn't matter too much if it works or not.
The update should be ready soon, it just went from - waiting for review to in review, normally it goes through within a day after that, but then it depends if they reject it for some reason - they might object to using the words zx spectrum, commadore or nintendo or something?
Re: Voodoo economics - I'm not very good at promoting things, I've done twitter and google plus and facebook but you know with this sort of app it's not really something the general public would want.
Oh well if it gets downloaded or not, I still can add it to the bottom of my CV under personal projects.