Temple of The Roguelike Forums

Development => Programming => Topic started by: getter77 on May 14, 2013, 12:44:04 PM

Title: REXPaint (now at v1.0!)
Post by: getter77 on May 14, 2013, 12:44:04 PM
http://rexpaint.blogspot.com/    Latest and greatest:  http://www.gridsagegames.com/rexpaint/index.html

Quote
There are a number of ASCII art editors available on the web, but most suffer from poor usability or small feature sets (one notable exception being eigenbom's awesome fork of ASCII Paint). For development of my own projects (see X@COM), I needed an application equipped with a wide range of tools for quickly drawing and manipulating ASCII art, as well as the ability to easily browse the images created as stored in their native format. Thus REXPaint was born.

Hopefully it will also find use as a general purpose ASCII art editor. I'd love to see what people can create with this program, so send me a link/copy if you've made something cool!

At launch the major features of this editor include:

    -Edit characters, foreground, and background colors separately
    -Draw shapes and text
    -Copy/cut/paste areas
    -Undo/redo changes
    -Preview effects simply by hovering the cursor over the canvas
    -Palette manipulation
    -Image-wide color tweaking and palette swaps
    -True-color RGB/HSV color picker
    -Create multi-layered images
    -Zooming: Scale an image by changing font size on the fly
    -Browse art assets and begin editing at the press of a button
    -Images highly compressed
    -Export PNGs for use in other programs or on the web
    -Skinnable interface


(Check out the features page for some screenshots.)

I say features "at launch" because REXPaint can still be considered a work in progress and will continue to receive updates as necessary. Some features on the to-do list that went unimplemented since I don't really need them yet and I don't know how much demand there would be: lasso selection for copying, image-wide glyph swapping akin to the color swap feature, tool tips on mouse hover, layer color blending, type to search/filter through browseable assets.

The X@COM RL project continues to manifest all sorts of nifty bits.   8)
Title: Re: REXPaint (now at beta v0.92r3)
Post by: guest509 on May 14, 2013, 02:43:12 PM
That is kinda neat. I didn't know anything like that really existed.
Title: Re: REXPaint (now at beta v0.92r3)
Post by: Kyzrati on May 14, 2013, 03:15:24 PM
Ah, yes, I should've posted this here, too, but I guess if I don't move fast enough getter77'll always handle it for me ;p

It's good for making roguelike mockups, or perhaps even art for use in roguelikes themselves (my own intention, aside from some UI planning).

I just released a new version today and the manual documents the file format's specifications, so you could also create art with REXPaint and import it directly into your own game. It's got better compression than PNGs of the same image, and you don't even have to use the code page 437 font--use whatever spritesheet you like by dropping it in the fonts directory and adding it to the fonts/_config file (alpha transparency is supported, too, but I didn't use it--see the manual).

BaconSoap's working on an as-yet unreleased roguelike and is doing just that--he already wrote an open source library in C# for importing .xp files (GitHub page (https://github.com/BaconSoap/RexReader)).
Title: Re: REXPaint (now at beta v0.95R6 + Extras)
Post by: getter77 on September 03, 2013, 12:24:08 PM
R6

Quote
REXPaint beta v0.95r6 (130903)

* NEW: Export to .ans for ANSI art
* NEW: ANSI mode (see manual)
* NEW: Added ANSI VGA palette
* NEW: Duplicate images through browser
* NEW: Rename images through browser
* NEW: Delete images through browser
* MOD: Lifted 25-character limit on filename input
* MOD: REXPaint.cfg specifies default canvas view size rather than console dimensions

REXPaint beta v0.94r5 (130726)

* NEW: Copy/Cut modes also display area dimensions in info window (like Rect/Oval mode)
* NEW: Resize canvas dialogue supports hotkeys ('w'/'h')
* NEW: Force a specific FPS cap in the config file (default was 60)
* FIX: Glyphs now shown properly in menu when GUI & Art using different fonts

Extra resources:

Quote
For Game Devs:
If you'd like to use (or at least reference) some pre-existing code for reading .xp files into your own game and converting them to an easy to use format, BaconSoap has generously open-sourced his C# library for importing .xp files. Check out RexReader on GitHub here. Many thanks to BaconSoap.

Additional Palettes (download txt -> drop in data/palettes directory):  #1

Additional Fonts (download image -> drop in data/fonts directory and list in _config.xt, a text file):  #2

If you've created a resource you would like to share with the community, feel free to submit it so I can add it to this list for other users to make use of.
Title: Re: REXPaint (now at beta v0.95R6)
Post by: Kyzrati on February 07, 2014, 11:22:02 PM
I'll just post this here update before Getter gets to it...  ::)

Released R7 (http://rexpaint.blogspot.jp/2014/02/export2.html) today:

REXPaint beta v0.97r7 (140206)

* NEW: Export pure text (Ctrl-t)
* NEW: Export to CSV (Ctrl-k)
* NEW: Export to XML (Ctrl-m)
* NEW: Export to XPM (Ctrl-p)
* NEW: Image-wide swapping of glyphs (Ctrl-LMB in font window)
* NEW: Toggle highlighting of already-used glyphs ('u')
* NEW: Multiple paste modes, added to support flipping/rotation of clipboard contents
* NEW: Set the grid glyph manually via config file
* NEW: Change grid resolution in program (Shift-Wheel)
* NEW: Hold Alt key while hovering over a glyph in font selection window to highlight all uses in current layer
* NEW: Grid can by set to appear under image (i.e. in undrawn areas only) (Alt-g)
* NEW: Text tool supports multiple lines (Ctrl-Enter), started directly below current line
* NEW: Text tool can recall any previously entered text for later use (Up/Down to cycle through history)
* NEW: Additional command for viewing previous/next image in browser (Shift-Wheel)
* NEW: Non-filled rects drawn with a single/double line glyph automatically draw a properly oriented ASCII box
* MOD: Ovals drawn from centerpoint by default (switch to corner mode via Alt-o)
* MOD: "File" menu renamed to "Image"
* FIX: Alt-key commands no longer cause system beeps (Windows)
Title: Re: REXPaint (now at beta v0.97R7)
Post by: getter77 on February 08, 2014, 01:18:09 AM
Heh, well done!  8)
Title: Re: REXPaint (now at beta v0.97R7)
Post by: Kyzrati on August 27, 2014, 03:30:02 AM
For anyone who wants to play with palettes and fonts from legacy systems, those resources are now available for download (compatible with earlier versions of REXPaint--they don't come with the program).

Palettes from Atari 2600, Apple II, Commodore 64, NES, Sega Master System, ZX Spectrum, and more:
(http://2.bp.blogspot.com/-KQ4-P0h9iQo/U_1HH2k0rrI/AAAAAAAAALw/RB2Hp8GTHC0/s1600/rexpaint_legacy_palettes.gif)

Fonts from Aquarius, MSX, Phillips VG 5000, ZX81, and more:
(http://2.bp.blogspot.com/-OZ2rKMlbbR8/U_1H-RrBcdI/AAAAAAAAAL4/Ov6JXJKYik4/s1600/rexpaint_legacy_fonts.gif)

New version of REXPaint coming soon.
Title: Re: REXPaint (now at beta v0.97R7)
Post by: Kyzrati on September 02, 2014, 05:52:02 AM
R9 (beta v0.99) just released.
Notes here (http://rexpaint.blogspot.com/2014/09/kitchen-sink-update.html).
Download here (http://rexpaint.blogspot.com/p/download.html).

Quite a few improvements this time around:
* NEW: Image-wide single-color swapping (Shift-LMB in palette window)
* NEW: Scroll image up/down with Shift-Wheel
* NEW: Switch between current/previous image with Ctrl-Tab
* NEW: Separate undo history maintained for each image, making simultaneous editing of multiple files easier
* NEW: Expanded undo support to include image resizing and layer manipulation (all possible edit actions can now be undone)
* NEW: Active layer and layer hide states are now stored for inactive images
* NEW: Set default image dimensions and background color in config
* NEW: Optional hex input/output in color picker
* NEW: Palettes/skins/configs can now specify hex color codes (in addition to RGB/HSV/named colors)
* NEW: Duplicate image names are allowed, provided each image is located in a separate subdirectory
* NEW: Images with changes are auto-saved after a certain duration (interval set in config)
* NEW: Left/Right arrows skip to previous/next directory in image browser
* NEW: File browser supports directory collapsing/expanding (click on folder name)
* NEW: Ctrl-Left/Right collapses/expands all subdirectories
* MOD: Cutting from bottom layer auto-fills area with default image background color (used to be transparent)
* MOD: Set-swap palette color command changed to Alt-LMB
* MOD: Grid resolution command changed to Alt-Wheel
* MOD: Image-wide glyph swap command changed to Shift-LMB (to match new color swap command)
* MOD: .xp files now begin with an internal format version number (will retroactively auto-update old files)
* MOD: File browser extends to full window height when config dimensions are greater than default
* MOD: Create image in image browser subdirectory command changed to Shift-LMB
* FIX: Palette color moving works again (borked in R7 by glyph swapping implementation)
* FIX: Failure to load an image could crash file browser
* FIX: Two mixed-line ASCII codes were inversed (only affected flip-paste orientation)
* FIX: Significant optimizations when processing massive images (render performance equivalent to small images)
* FIX: Undo/redo functionality was failing for image-wide glyph replacements in multi-layered images
* FIX: Undo/redo updates image unsaved changes indicator when applicable
* FIX: Copy tool retains transparency of content selected from non-base layers, rather than converting it to black on paste
* FIX: Skipping to previous directory in image browser via key command (Left/Ctrl-Up) selects first contained image rather than last
Title: Re: REXPaint (now at beta v0.97R7)
Post by: Kyzrati on May 31, 2015, 04:36:49 AM
No new release of REXPaint yet, but I've set up a new discussion board for REXPaint users (http://www.gridsagegames.com/forums/index.php?board=8.0) over on my new forums. They're brand new (just opened with the launch of my new game, Cogmind (http://www.gridsagegames.com/cogmind/)), so it may take a little while for users to trickle in. Just mentioning as it will become an alternative and more inclusive avenue for discussion in the future. (RP users have been spread out over a lot of different forums...)
Title: Re: REXPaint (now at beta v0.97R7)
Post by: Kyzrati on July 28, 2015, 08:30:25 AM
I've posted an in-depth guide to how I use REXPaint for roguelike development--mockups, art, prefabs and more--including specific techniques and plenty of reference images. Check it out here (http://www.gridsagegames.com/blog/2015/07/roguelike-development-rexpaint/).
Title: Re: REXPaint (now at beta v0.97R7)
Post by: Avagart on July 28, 2015, 11:52:43 AM
Great post, it's very helpful :)
Title: Re: REXPaint (now at beta v0.97R7)
Post by: Kyzrati on July 29, 2015, 03:15:06 PM
Thanks! I know there are a lot of devs using REXPaint, but might be using different methods and/or aren't always sure how to get the most out of it, so I thought a little summary of my own uses would be helpful.

Really wish I had more time to just doodle and make some recreational mockups and whatnot, but just so busy... More importantly I need to get a new version of REXPaint out, hopefully this year. It's about time for 1.0.
Title: Re: REXPaint (now at beta v0.97R7)
Post by: Tzan on July 29, 2015, 05:24:50 PM
I grabbed r9 last week, the program worked fine, but I couldn't Save or Export an image.
Today I realized I should try setting the compatibility mode to XP sp3 and that worked.
I use Win 7 64bit.
So disaster averted :)
Title: Re: REXPaint (now at beta v0.97R7)
Post by: Kyzrati on July 30, 2015, 12:55:55 AM
Hm, thanks for the notice, though I believe an inability to save or export should be caused by the exe not having admin access (b/c it tries to save files to its own directory). It's a 32-bit program, but should work fine in a 64-bit OS nonetheless (I use a Win7 64-bit that doesn't even have access to compatibility mode). Perhaps your compatibility mode change also changed the exe permissions?
Title: Re: REXPaint (now at beta v0.97R7)
Post by: Tzan on July 30, 2015, 02:25:37 AM
Yeah, that was it.
I turned off compatibility mode.
Selected Run as Administrator and it saved fine.

Never had to do that before, so I never thought of it.

The few times I really did have a compatibility problem the program wouldn't run at all.
That's why I never thought of trying that for a week.

Edit:
When in compatibility mode, click to run, it brings up a window to allow changes.
Thats how it happened. But just normal mode, no window comes up.
Title: Re: REXPaint (now at beta v0.97R7)
Post by: Kyzrati on November 13, 2015, 04:14:23 PM
(http://i.imgur.com/YRohxCC.gif)

REXPaint is a pretty mature tool now, and a ton of people are using it, so it's about time it got its own home on gridsagegames.com (http://www.gridsagegames.com/rexpaint/).

I've retired the old blog and REXPaint now officially belongs to the world of Grid Sage Games. Updates will continue when I have the time, and in fact the move to a new website is part of preparation for the symbolic "1.0," to come soon.

The new site's content is similar to the original blog, but prettier, easier to navigate, and comes with some extras.

On the main page you can see a recording I made while mutating my old organic mainframe piece to show off some of REXPaint's features:
(http://i.imgur.com/1eGHGni.gif)
Title: Re: REXPaint (now at beta v0.97R7)
Post by: Kyzrati on December 22, 2015, 03:35:27 AM
After more than two years since its inception, REXPaint (http://www.gridsagegames.com/rexpaint/index.html) has finally reached 1.0 :D

More fonts, cellwise HSV tweaking, layer locking, options menu, and more!

Full release notes and demo images can be found on the dev blog here (http://www.gridsagegames.com/blog/2015/12/rexpaint-1-0/).

The full REXPaint 1.00 (151220) changelog:

* NEW: Added more CP437 fonts (greater range of image zoom/scale options): 14x14, 18x18, 20x20
* NEW: Cellwise HSV color shifting of both foreground and background (interval controlled in options)
* NEW: Info window shows palette/art foreground/background color values under cursor, either RGB or HSV (toggle with 'q')
* NEW: Rect/Copy tools can show area dimensions directly on the canvas (toggle via "RDim" button, or Ctrl-d)
* NEW: Lock individual layers to prevent accidental modification ("Lck" button, or Shift-1~4)
* NEW: Hold Alt while cursor hovering over a palette color to highlight all uses in image (akin to glyph highlighting feature)
* NEW: Options menu (the 'O' button at the bottom, or F2)
* NEW: Program settings changed while running are saved/remembered for next time, without requiring cfg modifications
* NEW: Exiting while image(s) have unsaved changes requires confirmation (can be disabled in options)
* NEW: Reset image location to top-left corner via Enter (centering switched to Ctrl-Enter)
* NEW: Ctrl-RMB copies the uppermost visible cell at that position in a multi-layered image (working w/reference layers, etc.)
* NEW: Premade Arne32/Arne64 palettes available from the website resources page
* MOD: Enhanced 16x16 CP437 font's relative proportionality with other fonts
* MOD: Image dimension limits increased from 999x999 to 2500x2500
* MOD: Removed Undo/Redo buttons to save space (use ctrl-z/y instead)
* MOD: Autosaving now inactive by default (must set desired interval value in options)
* MOD: Layer delete button changed from "Del" to "X"
* MOD: Palette/color swaps only operate on unhidden layers
* MOD: Changes to layer hide/unhide/active states no longer count towards the unsaved progress indicator
* MOD: Different cfg format, now that options are available from within REXPaint itself
* MOD: Change skin keyboard command switched from F2 to F3 (also now accessible directly from options menu)
* MOD: License in README file more explicit about commercial use of images
* MOD: Removed backwards compatibility with pre-R9 .xp images (2013 format), which were converted by 0.99r9 build (2014)
* FIX: One mixed-line glyph in the square 10x10 CP437 font was 1 pixel off
* FIX: Reversed NW/SE directional canvas scrolling via numpad
* FIX: Using the mouse to select a value box in the color picker required an extra key press before detecting input
* FIX: Creating a new image copied the view offset of the image currently open, rather than resetting it to (0,0)
* FIX: Image browser couldn't collapse subdirectories at a depth of three or greater
* FIX: Copy-paste of lone transparent cell on layer 2+ crashed editor (Note: RMB-copy faster for this purpose, anyway!)
* FIX: Cellwise drawing off edge of image without releasing LMB damaged undo history, which could crash if accessed
* FIX: Could attempt to draw multi-cell objects to parts of a large image shifted under the tools area, leading to UI issues
* FIX: Typing a grave character at the end of a text entry would crash the font renderer
* FIX: Crash on running without an enabled audio device (now no such device required)
Title: Re: REXPaint (now at v1.0!)
Post by: Kyzrati on May 02, 2016, 05:08:32 AM
A bunch of other devs have been making cool stuff with REXPaint (http://www.gridsagegames.com/rexpaint/), so I took a day after releasing the latest Cogmind Alpha to throw in a few of the easier features on the TODO list (sorry, the tough stuff will have to wait until Cogmind is done!).

The full REXPaint 1.02 (160502) changelog:

* NEW: Image shifting with wrapping (Ctrl-Arrow/Numpad or Ctrl-Shift-Arrow/Numpad for single layer)
* NEW: TXT file importing (conversion to .xp format) supported via command line (see manual Appendix F)
* NEW: Partial PNG image importing (conversion to .xp format) supported via command line (see manual Appendix G)
* NEW: Fill tool includes second mode for 8-directional search
* NEW: Unlimited font size regardless of resolution limits--NOT ideal usage, implemented by request (see "unlimitedFontSize" in cfg)
* FIX: One line junction glyph in the 8x8 CP437 font misaligned

Some of the new features in action:

(http://i.imgur.com/4PTexWB.png)
An imported txt file.

(http://i.imgur.com/Lcb7JKi.gif)
Shifting an image, with content wrapping to the other side.

I also included this experimental tool I was playing with earlier this year, though I wonder if anyone else will actually get any use out of it :P...
(http://i.imgur.com/ImOsB4i.png)
Importing a .png screenshot from ADOM into an editable .xp format.

(http://i.imgur.com/QeLQ5Sd.png)
Another from Brogue.

Also, if you haven't seen it before, the gallery (http://www.gridsagegames.com/rexpaint/gallery.html) is now filled with impressive work :)
Title: Re: REXPaint (now at v1.0!)
Post by: Kyzrati on June 20, 2018, 12:39:13 AM
REXPaint v1.04 is released!

Changelog:
For feature demos and other info see the main release announcement on the forums (http://www.gridsagegames.com/forums/index.php?topic=1165.0).

REXPaint is now also available on itch.io (https://kyzrati.itch.io/rexpaint) :D
Title: Re: REXPaint (now at v1.0!)
Post by: Kyzrati on August 03, 2020, 02:47:35 AM
Just released v1.50 :)

REXPaint 1.50 (200803) changelog:

Feature demos and some release notes can be found via the main release announcement on the forums (https://www.gridsagegames.com/forums/index.php?topic=1468.0). Also on itch.io (https://kyzrati.itch.io/rexpaint/devlog/167151/rexpaint-150-released).
Title: Re: REXPaint (now at v1.0!)
Post by: Kyzrati on January 10, 2024, 04:55:14 AM
Progress on Cogmind has recently led to numerous engine improvements (and a few bug fixes), so combined with feature request patches from the past few years we're getting an official release for the new and improved REXPaint (https://www.gridsagegames.com/rexpaint/)!

Big items this time around include autoscaling of font bitmaps, .gpl (GIMP) palette support, and even better .ans (ANSI art) support--for the first time REXPaint can automatically import a format other than its own!

First, the full changelog...

REXPaint 1.70 (240110) changelog:
You can download REXPaint here (http://www.gridsagegames.com/rexpaint/downloads.html), and note that as of 1.04 it's also available on itch.io (https://kyzrati.itch.io/rexpaint).

.ANS Importing!

While REXPaint has had .ans exporting for many years and could therefore be used to create traditional ANSI art, only art created from scratch using REXPaint's native format could be used to do this. Now .ans files can be imported as well!

Simply drop any .ans files into the /images/ directory structure, and on startup if REXPaint does not see any corresponding .xp files by the same name, it will automatically convert them for editing access. Although REXPaint only edits .xp files directly, you can re-export to .ans at any time. Original .ans files remain unchanged unless you choose to overwrite one with an export.

REXPaint will import and view .ans files even when ANSI mode is not active, though properly exporting to .ans again would require that mode to be active as usual. (Note: REXPaint strips SAUCE metadata when it converts .ans to .xp, and therefore does not contain any on export, either.)

Animated .ans files are beyond the scope of REXPaint and ignored--only static ANSI art is compatible.

Here is a demo of .ans conversion:

(https://i.imgur.com/sJ5XER3.gif)

We've had text and image file importing for a while, but those are more fiddly, while this automated feature was a much bigger production. I spent a while researching the format in order to enable imports, and as a result was also able to optimize REXPaint's .ans exports to reduce the resulting file size.

(Note that one of these optimizations involves giving "cursor" instructions to skip over empty space, but if you're intending to use REXPaint's .ans exports with Discord's ```ansi feature, know that Discord's implementation of ANSI is pretty terrible and incomplete so you'll probably have to set the new ansOutputNoCursorShift cfg option to make images containing that sort of empty space compatible over there.)

Some other new features in action

Import .gpl (GIMP) palettes, for example from here (https://lospec.com/palette-list), by dropping them into the data/palettes directory:

(https://i.imgur.com/2JQzPfi.gif)


Have a tiny font that you want to increase by a whole number scaling factor? No longer do you have to manually create a separate set of bitmaps for it! Just add a new line in the font configuration file and let REXPaint do the rest:

(https://i.imgur.com/IiHI2Py.gif)


The system clipboard can now be used to copy-paste text from another program into REXPaint's text entry tool (although this currently only supports a single line of text):

(https://i.imgur.com/i7csXBh.gif)


The UI will recall the glyph and colors in use when last closed, if possible:

(https://i.imgur.com/3YBcoOC.gif)


Over a decade since the first release and REXPaint is still going :)

I've still got lots more planned, including huge features, but, you know, when I get to it :P