AuthorTopic: I'm making a paint program, so useful tools, ideas and features required please  (Read 158083 times)

Offline happymonster

  • 0010
  • *
  • Posts: 455
  • Karma: +0/-0
    • View Profile
And indeed, working on brushes and other stuff is taking a while. Plus I've been a bit tired the last few days and not felt like programming.

Hopefully I'll feel like doing a little more once the weekend approaches!

Offline aregon810

  • 0001
  • *
  • Posts: 47
  • Karma: +0/-0
  • Today is the first day of the rest of your life.
    • View Profile
it dont work for me if i try to test it out =/

Offline happymonster

  • 0010
  • *
  • Posts: 455
  • Karma: +0/-0
    • View Profile
Sorry to hear that. Can you give me any more details? What happened when you ran it? What is your system, etc?

Offline happymonster

  • 0010
  • *
  • Posts: 455
  • Karma: +0/-0
    • View Profile
Ok, I have a question about layers. As you can tell from the image, I will be using icon images for the layers (much like is used in Photoshop, GIMP, etc..) Those icons seem to be around 32 x 32 pixels in size. But, how useful are the icons in telling what one thing is? I normally only use the text description myself with no more than 3 or 4 layers.

So, I was just wondering if 32 x 32 icons will be too small to be useful? Or what size is a minimum for a preview icon..

Any ideas from your own experiences?

Offline Live-Dimension

  • 0001
  • *
  • Posts: 7
  • Karma: +0/-0
    • View Profile
    • Live-Dimension.com
I'm not sure if this has been said or not. I'm not going to go through the entire topic to find out.

However, GraphicsGale has a way of making selecting the anti-aliasing colours very easy.
You simply select two colours and use "Make Graduation" on them which fades each colour between the selected colours much like a gradient.
Since it's in the pallete it's simply to use.

Here's an (extreme) example.
R = Red,
B = Blue,
P = Purple.
0 = Random Color

Original Pallet
R 0 B

I select R and B, keeping 0 between them which then I use "Make Graduation".
So now it's like this.
R P B
The middle colour is 50% R, 50% B.

I could go like this.
R 0 0 B
"Make Graduation"
R RP BP B
Middle Colours:
75% R 25% B,
25% R, 75% B.

It just makes anti-aliasing soooo much easier, as you don't have to guess, nor do you have to calculate the average RGB values for each colour.

Offline surt

  • 0011
  • **
  • Posts: 570
  • Karma: +0/-0
  • Meat by-product
    • not_surt
    • http://pixeljoint.com/p/2254.htm
    • View Profile
    • Uninhabitant
Ok, I have a question about layers. As you can tell from the image, I will be using icon images for the layers (much like is used in Photoshop, GIMP, etc..) Those icons seem to be around 32 x 32 pixels in size. But, how useful are the icons in telling what one thing is? I normally only use the text description myself with no more than 3 or 4 layers.

So, I was just wondering if 32 x 32 icons will be too small to be useful? Or what size is a minimum for a preview icon..
I'd say I work mainly off the layer order rather than preview or name (I rarely even bother naming layers), so I'd be quite happy with just an index number, but I expect the more arty-farty visual-types would be put off by that.

GGale uses 28^2 previews. I find the GGale previews little better than useless, but that is due to the image scaling method used (GGale uses nearest-neighbour sampling) more than their size. I'd suggest using either an area-average sampling or a non-transparent-favouring area-mode sampling might be interesting/useful (never actually seen it used, maybe for a good reason, but should work very nicely for line-art).

Another way to make the limited pixel count more useful would be to just preview the bounds of the non-transparent pixels, so a small sprite on a large transparent background won't get lost.

One thing GGale does is stretch the image to fit the preview, disregarding aspect ratio.

Live-Dimension : I think that's a safe bet. I don't think I've ever used an indexed-mode paint program that didn't have that feature.

Offline Ai

  • 0100
  • ***
  • Posts: 1057
  • Karma: +2/-0
  • finti
    • http://pixeljoint.com/pixels/profile.asp?id=1996
    • finticemo
    • View Profile
Live-Dimension : I think that's a safe bet. I don't think I've ever used an indexed-mode paint program that didn't have that feature.
Yes, although most of them do it quite wrongly; even most dedicated palette editors do it wrongly. For example, a correct 3-step graduation between intensity 0 and intensity 255 is NOT [64, 128, 192] but rather [137, 188, 225], because a proper interpolation is linear in the visual relationship of the intensities, and standard RGB is nonlinear in that respect.
Interpolating HSV/HSL also only makes proper sense when you derive the HSV/HSL values from linear RGB values.
So, it's worth mentioning as a suggestion: correct interpolation.

The formulas for converting between linear and standard sRGB, after they are converted to floats in the range [0..1]
Quote from: convert linear->standard
when intensity < 0.0031308
  result = 12.92 * intensity
otherwise
  result = (1.055 * (intensity ^ (1.0 / 2.4))) - 0.055

Quote from: convert standard->linear
when intensity <= 0.04045
  result = intensity / 12.92
otherwise
  result = ((intensity + 0.055) / 1.055) ^ 2.4

Using linear rgb can also improve other things, like the antialiasing filter and well... anything that combines colors mathematically to create a new color, really.

Using the above formulas, you can see that standard rgb values 64, 128, 192 are not on a straight line through the middle of the range 0..255, but on a curve along the bottom of the range 0..255; 64, 128, 192 convert to linear RGB intensities 13, 55, 133.

an example of the difference that correct interpolation can make:

top row is incorrectly calculated (interpolating through standard RGB), next row is correctly calculated (interpolating through linear RGB).
the rest of the rows just illustrate interpolation through other colorspaces.
If you insist on being pessimistic about your own abilities, consider also being pessimistic about the accuracy of that pessimistic judgement.

Offline happymonster

  • 0010
  • *
  • Posts: 455
  • Karma: +0/-0
    • View Profile
Surt:
Quote
Another way to make the limited pixel count more useful would be to just preview the bounds of the non-transparent pixels, so a small sprite on a large transparent background won't get lost.
Yes, I was thinking of this too. I think I will have to try a few things and see what works and what doesn't.

Incidentally.. What's this? Large icons with small text underneath, tabbed option panels, yet it's new MS software? How Ironic!! ;)
http://www.geekpedia.com/gallery/fullsize/Microsoft%20Excel%202007%20Black.jpg
« Last Edit: January 16, 2009, 06:11:05 pm by happymonster »

Offline happymonster

  • 0010
  • *
  • Posts: 455
  • Karma: +0/-0
    • View Profile
I'm making progress on adding user brush support.

I've added 8 brush preview thumbnails underneath the brush shapes and slider in the Brush Options panel. I was wondering whether I should put it to the right of the layers at th top of the screen, but conceptually it makes more sense to have it next to the normal brush presets & shape/size controls.

The preview is a quick pixel resize for now. I will look to improve this later, but it's not too bad now.

You can currently copy an image and have the preview update, although you can't use the brush for drawing yet. I'm going to need to change the cursor/brush code for the user-brushes. SIGH! It's all a lot of work.. :P

Offline happymonster

  • 0010
  • *
  • Posts: 455
  • Karma: +0/-0
    • View Profile
Things are still progressing.. even if this thread has gone quiet! :P