Nonnon Paint
Graphics Editor hand-made-only-painter for everyone who loves painting good image with sharp contrast + dot-based, pop-art image with complexity + fine art bad accurate geometric objects + 3D, draw-based largest editable size 20000 x 20000
Global Tips
menu-click emulator press shift key, then click + Pen : color picker + Grabber : finish + Save : change format for Mos app users please register "Exception" list + and uncheck "Smooth" + you can easily register when Nonnon Paint is running
Limitation of Lite Version
Lite Version is under App Sandbox [ so you cannot do ... ] alias resolver is not available + a path is not accessible Multi-Layer is not available + programmers cannot make a folder and files for saving [ Full Version is here ] download from here [ How to check Lite or not ] see titlebar of tool window "Nonnon Paint Lite" is lite version "Nonnon Paint" is full version
HowToUse
Open drop an image file or a folder (when Nonnon Multi-Layer) [ Supported Formats ] BMP / ICO / CUR / PNG / JPG / Nonnon Multi-Layer [ load as PNG only ] Tiff / WebP / JPEG2000 and more by macOS system Save press a diskette icon button + see below "Tool Window" for details [ Important ] data are not auto-saved + this is like Windows apps + for easy to undo (undo is not implemented) Close press the close button + never say "Do you really want to exit?" or like that
Tool Window
[ Scrollbars ] Size pen size Mix smoothness + percentage between a canvas and a picked color + nothing will happen when 0, only for exercise Boost precision booster + useful when pen size is 1px or 3px + zero means OFF Air air brush + zero means OFF Zoom stretch a canvas A R G B set a color + menu-click to pick a color on a canvas [ Canvas Gray Margin ] you can get a color ARGB( 0,255,255,255 ) [ Multi-Layer ] Cmd + menu-click to pick a top-most color [ Icon Buttons : Upper ] [ Applied area ] [ Pen / Fill ] all canvas and the grabbed area [ Grabber ] the grabbed area all canvas when not grabbed 1 : Shrink : 1/2 less memory, less precision 2 : Enlarge : x2 more memory, more precision 3 : Mirror left side right effect + for adjusting balance or for removing distortion 4 : Rotate : Left 5 : Rotate : Right make a round + for adjusting balance or for removing distortion [ Icon Buttons : Middle ] 1 : Blank 2 : Blank 3 : Blank 4 : Resizer a special window will appear + see below for details 5 : Save an overwrite button + menu-click to change formats + rotation : BMP => ICO => CUR => JPG => PNG => Layer [ Icon Buttons : Lower ] [ Pen Mode ] 1 : Pen round pen 2 : Fill flushing with a picked color into a closed area + as same as "bucket tool" or "closed area" Smooth Fill press Comamnd key when click + currently fill-as-chunk only available + you cannot use black(RGB 0,0,0) as filling color 3 : Grabber cut and paste tool [ Usage ] 1 : drag to select an area 2 : drag to move 3 : menu-click to paste + to clear selection, press a button again + you can resize when dots are accent color [ Checkbox : Per-Pixel Alpha Blending ] alpha value will be used [ Scrollbar : Blend ] Global Blending On/Off [ Combobox : Style ] Ant : animated edged frame Pixel : pixel unit frame + Nonnon Paint remembers the last setting [ Key Bindings ] Arrow : move a grabbed area Command + C : "Drag OK" : copy / re-grabbing Command + V : "Drag OK" : paste Command + A : "Neutral" : select all Z : hide frame temporarily [ Double Click ] "Neutral" : select all "Drag OK" : reset to starting position [ Quick Stretch ] [ Proportional ] start to drag while pressing Command key [ Transform ] start to drag while pressing Command key and Option key [ Quick Layer ] you can paint on the grabbed area select another tool while "Drag OK" + too much complicated tool, use carefully! [ Eraser ] canvas color will be copied to the grabbed area 1 : colorpicker : pick from gray margin 2 : paint it + you can use any full-transparent colors [ Drop2Save ] you can save an image to desktop when drop to out of canvas [ Drop ] load as a new grabbed area + position will be zero when you drop to Tool Window 4 : Blank 5 : Color History dispklay picked colors and more
Resizer
Resize Option margin color will be invisible white Center auto-centering Fit proportional stretching + "Lock X" : Y will be auto-calculated + "Lock Y" : X will be auto-calculated Tile copy as repeating pattern Top-Left original image remains in top-left corner Transform stretching Pixelart 2x Pixelart 3x Cel Art 2x enlarge with special algorithm + 2x will be twice, 3x will be 3 times larger + "Pixelart" : effective with dot-based images + "Cel Art" : effective with anime-like images Size input fields for output size Round rotate by degree ( -360 <=> 0 <=> +360 ) --- Color Option None do nothing Grayscale output grayscaled bitmap + simple average based algorithm Monochrome output black and white image Reverse output RGB reversed image + ( 255 - n ) is used Color Reduction Nonnon Smart Color Reduction + use with PNG files for shrinking size + this can reduce 20% to 50% Auto White Balance for picutres + very strong tool Squircle Icon Maker make an icon for Mac Contour auto contour + alpha sensitive version of Monochrome [ Conditions ] background has alpha zero [ Usage ] for thicker contour, use this many times an output image is jaggy as intended + use "Fill" and "Color Replacer" to remove garbage pixels + you can use "Thicken Lines" of Multi-Layer too Gamma gamma correction, for tweaking brightness + image will become black at 0.0 + image will become white at 2.0 by adjustment Color Wheel tweak color itself + for changing color after painted + useless for whole canvas, useful for Grabber + this is the same as Hue in HSL colorspace Vividness tweak vividness + this is the same as Saturation in HSL colorspace Sharpness tweak sharpness + plus value : sharpen filter + minus value : smoothing filter + smoothing filter is also known as "Anti-alias" + use before shrinking Contrast tweak contrast + very strong tool, use a small value
Menu
Preview preview on/off + useful for large image + you can resize to stretch, useful for remove distortion Grid helper grid on/off + useful when free-handed images + display canvas centerline and guideline + Nonnon Paint remembers the last setting Pixel Grid add frame around a pixel + useful when dot-based images + Nonnon Paint remembers the last setting Alpha Emphasizer for cleaning alpha garbages + yellow color is blended when alpha has non-visible value + Nonnon Paint remembers the last setting --- Clear Canvas / Clear Grabbed Area make a canvas empty [ How to make a color balanced area ] 1 : Grabber : select all 2 : Clear Canvas : choose a color 3 : tweak blend ratio 4 : paste it 5 : Fill : margin + you can tweak everything + like RGB / CMY / Black / White Color Replacer replace a color for another color + for dot-based images Alpha Tweaker Clear set visible to all alpha values Reverse reverse all alpha values
Wheel Mouse Support
Canvas wheeling : zooming wheel button : grab and drag scrolling Scrollbars wheeling : scroll up/down when a cursor is hovering
Keyboard Support
1 Preview + same as "Preview" on menu Z Quick Eraser + color will be eraser color while pressing X Quick Blur + pen input with antialias only + picked color is not used C Multi-Layer Whole Eraser + all layers are applicable F2 fork the current image + rename to today's date and time F3 Multi-Layer : used layer indicator + for removing pixel noises
PNG Support
typical format only available [ Limitaion ] saved format might be different from opened format only basic information will be saved file size may bloat automatically convert to minimal size less colors make better compression
Jpeg Support
fully supported by macOS [ Limitaion ] transparent color is not supported by format
Multi-Layer Support
at first, you need to save with a save button this is very complicated tool, use carefully [ Format ] a folder which has "nonnon_paint.ini" and "0.png" + default least layer number is 16 layers + you can control via "nonnon_paint.ini" + don't remove "0.png" [ Layer Window UI ] + layer order is upside down with Photoshop or GIMP + because of easy to implement and to be scalable click select an editable layer double click [ TxtBox ] visibility on/off + italic font is used when OFF menu click [ Up/Down ] focus up/down [ Rename ] you can name each layer + you can use enter key to turn on/off + available when a layer window has focus + enter key : inline edit + via menu : external window + if you meet troubles, use external window [ All On/Off ] all layers turn on/off [ This Only ] turn off except for a selected layer [ Thicken Lines ] [ Thin Lines ] make lines thicker/thinner + background : argb( 0,255,255,255 ) + foreground : color on color picker [ Add A New Layer ] add a new layer + if you make flare-like effect, + fill a wanted color with alpha zero before use it "Whole Preview" checkbox virtually all layers are visible "Whole Grab" checkbox effect many layers at once + this will apply only visible layers "Whole Save" checkbox Drop2Save behavior will change On : save as one image (default) Off : a current layer only + turn on when "Whole Grab" is used "Blur" scroller for focus blur emulation + you need not to break images "Blend" scroller opacity 0% to 100% key input it works when a cursor is on the layer window Shift + Up/Down Arrow swap [ Special Layer ] a name started by "*" is handled as special + Read-only : not editable + Whole Grab : ignored + Whole Preview : ignored + for Background, Dessin [ Basic UI ] Pen and Fill these will be applied visible layers only Save you can save via layer saver only other savers mean to save as one image Resizer resize option will be applied a whole layer color option will be applied visible layers only Buttons on a Tool Window effect will be applied a whole layer Menu Effect ("Clear Canvas" or so) effect will be applied visible layers only [ How to use ] [ Open ] drop a folder or drop "nonnon_paint.ini" [ Workflow ] line for upper layer, color for lower layer + this is like animation cel [ Known Problems ] heavy machine power is required + many CPU cores make better performance + turn off visibility in unused layers
Nonnon INI2GDI Script
make below code as a text file then drop to Nonnon Paint [ Single-Layer / Simple Version ][Nonnon INI2GDI] size = 256 256 style = smooth contour shadow layout = vertical align = center base_color = 255 255 255 255, 255 0 200 255 base_style = vertical text = "Nonnon INI2GDI" text_font = Arial, 33 text_color = 255 255 255 255, 255 0 150 200 text_color_shadow = 255 0 100 150 text_color_contour = 255 0 150 200 text_style = bold gradient text_fxsize = 1 2[ Multi-Layer ][Nonnon INI2GDI Layer] 0 = "Nonnon INI2GDI Layer #0" 1 = "Nonnon INI2GDI Layer #1" 2 = "Nonnon INI2GDI Layer #2" [Nonnon INI2GDI Layer #0] size = 256 256 base_color = 255 255 255 255, 255 0 200 255 base_style = vertical frame_style = round frame_fxsize = 32 [Nonnon INI2GDI Layer #1] layer = 0 0 25 size = 256 256 base_color = 255 255 255 255, 255 0 200 255 base_style = gingham base_unit = 32 frame_style = round frame_fxsize = 32 [Nonnon INI2GDI Layer #2] layer = 0 0 0 size = 256 256 style = smooth contour shadow layout = vertical align = center base_color = 0 255 255 255 text = "Nonnon INI2GDI" text_font = Arial, 33 text_color = 255 255 255 255, 255 0 150 200 text_color_shadow = 255 0 100 150 text_color_contour = 255 0 150 200 text_style = bold gradient text_fxsize = 1 2Reference is here[Nonnon INI2GDI::Reference::Mac Version] some options are not available [Nonnon INI2GDI::Reference] size = x y style = [ combination ] default | gray | clarity | nomargin | automargin | pressed | systemcolor layout = [ one of these ] horizontal | vertical align = [ combination ] center | top | bottom | left | right scale = frame wll be larger default is 1 -1 means "auto / use a system setting" base = file_name, index base_color = A1 R1 G1 B1, A2 R2 G2 B2 : background, foreground base_style = Basics : solid Gradient : vertical | horizontal | rectangle | circle Pattern : polkadot | polkadot_pop | polkadot_rnd Pattern : rect_tile Pattern : gingham | tartan | stripe | checker Mimic : luna | luna_press Image : image | image_tile base_unit = unit size for polkadot | rect_tile | gingham | tartan | stripe base_margin = margin for polkadot or rect_tile frame_style = [ one of these ] noframe | simple | flat | button | scroll | push | sink | etch | luna | round | rpg | aqua frame_fxsize = round for "round" or "rpg" : default is "4" frame_corner_color = A R G B : for "luna" "round" icon = file_name, index icon_color_shadow = A1 R1 G1 B1 icon_color_contour = A1 R1 G1 B1 icon_color_sink = A1 R1 G1 B1, A2 R2 G2 B2 : *1 for top-left, *2 for bottom-right icon_style = [ combination ] default | ( shadow | shadow_fog ) | ( contour | contour_fog | sink ) | stretch | tile icon_size = x y icon_fxsize = o1 o2 : offset1 for shadow, offset2 for contour/sink text = file_name text_font = font_name, size text_color = A1 R1 G1 B1, A2 R2 G2 B2 : color, gradient color text_color_shadow = A1 R1 G1 B1 text_color_contour = A1 R1 G1 B1 text_color_sink = A1 R1 G1 B1, A2 R2 G2 B2 : *1 for top-left, *2 for bottom-right text_style = [ combination ] bold | italic | underline | strikeout | fixed | smooth | clear | gradient [ combination ] default | ( shadow | shadow_fog ) | ( contour | contour_fog | sink ) text_fxsize = o1 o2 : offset1 for shadow, offset2 for contour/sink [Nonnon INI2GDI::Details] layer = x y blend(%) rotate(360degree) not used with the first layer size = 0 means "auto adjustment" style = icon/text both : ( shadow | shadow_fog ) | ( contour | contour_fog | sink ) align = only "size" is set, not used when "auto adjustment" base_style = luna : foreground will be hover/focus frame, zero means off image, image_tile : load with "base" frame_style = Flat : simple | flat | etch | luna | round | rpg | aqua 3D : button Pushed : push(deep) | sink(shallow) text = a single line will be drawn when a file is not exist text_font = some styles need empty name icon = Explorer Compatible : EXE DLL ICO CUR ... Image Loader : BMP PNG JPG GIF icon_style = stretch : stretch when "icon_size" is larger than image size tile : other parameters are not used icon_size = Explorer Compatible : margin will be added Image Loader : an image will be resized icon_clip = "image name(.BMP or .PNG)", offset_x, offset_y : use non-draw area
Support Forum
feel free to report/complain click here