Giter Club home page Giter Club logo

dpaint-js's People

Contributors

michaelshmitty avatar steffest avatar warpdesign avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dpaint-js's Issues

Copy-Paste colour issue

This issue confuses me, but When I copy-delete-paste an image from the DPaint canvas to itself, like 20 times, the image gets very lossy. I didn't touch Optimize color.
It especially affects the red channel and I've been noticing it favours red a lot.

I'm mainly confused cause the other mac painting application also has issues and I'm blaming it on the clipboard, but this is very noticeable. I'm also using MS Edge.

BUG: Disappearing layers

Sometimes when I press ctrl+z, maybe after having some hidden layer active, then changing layer visibility, the result is that one layer is duplicated over another layer, destroying the old content completely.

Support for random pixels brush tool

It would be great if we could have a tool which paints randomly pixels on the canvas. Like spraying or splatting brushes in Krita and Photoshop.

Touch affordances

Had a quick play on an Android phone and wonder how touch affordances could work.

There's a question of when to enable them, I'm not sure if there are APIs that help find the size of the screen, which might help.

In the case of sliders for instance, having a larger UI for it that appears when you touch the screen could be one place to start.

dpaint paint modes like matte, color/smear/shade etc

Hi, dpaint js is awesome!

I trick I remember from my youth was combining color cycling wiht the cycle mode (F7) , so that you could just paint in long strokes, hit tab, and get animation very quickly. Would it be possible to include this in dpaint js?

Blend was also really useful for setting up quick gradient and edge fx, I've included screen recordings from dpaint3 on an amiga emulator to show what I mean.

Thanks!

-matt

cycle1.mp4
shade_mode.mp4
cycle_boucing_ball.mp4

Deluxe Paint AGA

Just curious.

Would changing the Amiga output to a Deluxe Paint version with AGA support require a lot of work outside of using an ADF with the right release and removing the 32 color limitations?
I wanna look at it myself when I have some time, but I figure I'd ask you first.

IFF - Can't parse file

I found a sample iff file that from what I read can be opened with Photoshop, but DPaint-js produces random pixels instead.

I don't have PhotoShop so I could not see the expected output.

Limit gradient to selection

I'm not sure if this is how the original worked, but logically I think the gradient should be limited to the selected area if one exists. Currently it ignores it and just draws the gradient on the whole layer.

Option to export Amiga palette as 68K ASM

Another small 'nice to have' feature request :)

Currently when saving using the Amiga 'Planes' option the palette is exported as a text file. This is really useful but the output format is for 'C' like languages. e.g.:

{0X000,0X95f,0X599,0Xf93}

It would be nice for us ASM coders to have the option to output in 68K ASM format. e.g.:

dc.w $000,$95f,$599,$f93

This is similar to what some traditional Amiga OS tools like IFFTrasher or IFF Converter do. IFF Converter can be seen in use on this video to produce the 'copper list' asm code for the palette.

Note the 'three nibble' format (same as the 'C' example) that allows the excellent 'Amiga Assembly' VSCode plugin to render inline colour swatches.

Clicks on scrollers draw on canvas

When canvas is zoomed in, so it gets scrollers, clicking on them (to scroll the canvas) "goes through" and draws on the canvas.
Steps to reproduce:

  1. Select bigger brush, so the problem is better visible.
  2. Zoom in until you get at least one scroller laying over the canvas.
  3. Scroll a bit.
  4. Zoom out, a dot is painted on the canvas.

Moving quickly with the pencil tool results in gaps

When drawing with the pencil tool, gaps can appear if the cursor is moved quickly. It seems to only draw once per frame.

Possible solution:

  • When drawing with the pencil, always draw a straight line between the position of cursor last frame and the current frame

image

Some new features

Hello everyone.
I'm posting here my 2 cents, hoping they'll be considered.

Create:
	Group
	Regular Polygon/Star
		Round [optionally] Corners (3 to infinity)
		X/Y stretch
	Text
Directly manipulating image
	Flip/Skew/Shear/Translate
	Deformation (cage)
	Clone stamp
	Offset (see Photoshop)

Thanks. Have a nice day.

Add a "Duplicate Frame" button

Primary goal:

  • Add a new button to duplicate the current frame (and insert the new frame after the current frame)

Secondary goal:

  • Always highlight the current selected frame (so it's obvious which one will be deleted or duplicated)

Thanks for the great software!

Changing to another custom palette flaws

What I'm used to now is that when loading a custom palette any time, it won't apply until I select current, if that's accidentally alrdy selected before loading the image&palette, I change alpha Treshold for the same effect.

  1. However, when loading the 2nd custom one, the button is still on current and changing the custom palette reverts to the previous one, even when locked. I either expect A. the whole image making a palette swap (like when u edit current palette) or B. make all pixels reselect the nearest value from the new palette (the proper one).
  2. When loading a palette, all partial transparency gets omitted. I have to use pinta's transparency, which is also flawed for the tmi.
  3. This is that Treshold works like a mask and I don't have the ability to add transparent colours to the palette.

You can test with this good looking web palette I made for a 8-bit mod:
top216.json

Support for DPaint DOS LBM files?

Does DPaint-js support .lbm files from the DOS version of Deluxe Paint? These are IFF files with a PBM FORM and a chunky body instead of interleaved bitplanes like in Amiga ILBM files.

Suggestions about the channels and TGA

  1. Adapting the channel depth to a given value (4 bit per channel)
  2. Adding Transparency
  3. Adding hexadecimal presentation to right click colour menu (#FFFF)
  4. Add 12-bit TGA support
  5. I also hope when I right click the selected colour (which I got from colorpicker), that I can see the selected rgb values instead of 0, 0, 0

Allow users to delete the first frame (and replace it with a blank frame)

If I want to throw away the current drawing and start over with a blank one, I believe these are the only options:

Use the Eraser tool

  • Very slow and manual process

Add new frame + delete existing frame

  • Much quicker, but still 2 steps

File -> New (or Alt-N)

  • Quick and easy, but if it was a mistake then I can't undo the change

Preferred solution:

  • Allow users to delete the first frame (and replace it with a blank frame)
  • If the deletion was a mistake, undo should bring it back

UAE window right mouse button does not work

when previewing in dpaint the right mouse button did not work for menus in dpaint ... Maybe it is meant for preview only so when you think it is not needed then close this issue ... I came just about this so I thought I report it to you...

anyways very cool app !! Thank you

Interleaving options for Amiga binary 'Planes' save

Thanks for this awesome app! I have one small feature request for Amiga ASM development:

When using the Amiga 'Planes' save option, the bitplanes are saved contiguously back-to-back. It would be nice to have an option to interleave them.

An example:

  1. Create a 32x8 pixel image using a palette of 4 colors, so 2 bitplanes will be used.
  2. Place four 8x8 filled rectangles next to each other left-to-right using color0, color1, color2, color3 in that order.
  3. Save using Amiga 'Planes' option.

The saved data looks like this when examined in hex editor (lines of 4 bytes):

00 FF 00 FF  <- Line 1 of bitplane 1
00 FF 00 FF  <- Line 2 of bitplane 1
00 FF 00 FF  ...
00 FF 00 FF  ...
00 FF 00 FF  ...
00 FF 00 FF  ...
00 FF 00 FF  ...
00 FF 00 FF  <- Line 8 of bitplane 1
00 00 FF FF  <- Line 1 of bitplane 2
00 00 FF FF  <- Line 2 of bitplane 2
00 00 FF FF  ...
00 00 FF FF  ...
00 00 FF FF  ...
00 00 FF FF  ...
00 00 FF FF  ...
00 00 FF FF  <- Line 8 of bitplane 2

When writing games/demos on the Amiga it's often useful to interleave the bitplane data, particularly when using the Blitter to mask smaller sprites (Blitter Objects or 'BOBs') over a larger playfield. With interleaved bitplane data this can be done in a single contiguous Blit across all bitplanes instead of having to Blit each individual bitplane in turn. To support this we'd need an option to interleave the bitplane data (like in IFF/ILBM,) when saving the planes so that in the above example the output would look like this in a hex editor:

00 FF 00 FF  <- Line 1 of bitplane 1
00 00 FF FF  <- Line 1 of bitplane 2
00 FF 00 FF  <- Line 2 of bitplane 1
00 00 FF FF  <- Line 2 of bitplane 2
00 FF 00 FF  ...
00 00 FF FF  ...
00 FF 00 FF  ...
00 00 FF FF  ...
00 FF 00 FF  ...
00 00 FF FF  ...
00 FF 00 FF  ...
00 00 FF FF  ...
00 FF 00 FF  ...
00 00 FF FF  ...
00 FF 00 FF  <- Line 8 of bitplane 1
00 00 FF FF  <- Line 8 of bitplane 2

Whilst it's possible to save in IFF/ILBM and extract the BODY chunk it would be great to have this option on Planes with the convenience of the palette output.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.