debkbanerji / lego-art-remix

Powerful computer vision assisted Lego mosaic creator · Over 1 million images created (so far!)
https://lego-art-remix.com
GNU General Public License v3.0
276 stars 67 forks source link

Import a color list #29

Closed Mesclor closed 3 years ago

Mesclor commented 3 years ago

Just came across this and love it. I had been using a cross stitch pattern site up to this point. One thing it has that I would love to see implemented here is an import option of color studs to use. It used a csv file import as an example of the file, here is the color palette I used on my last project.

1b2a34,01

ffffff,02

8c8c8c,03

969696,04

3e3c39,05

aa7f2e,06

00852b,07

a5ca18,08

720012,09

b40000,10

68c3e2,11

1e5aa8,12

Anyways, just an idea as the current method to remove colors from the list takes awhile. Another option may be to allow multiple changes to be made, then clicking a refresh/redraw image button, instead of waiting for every change being made before making the next adjustment.

debkbanerji commented 3 years ago

Thanks for opening the issue! The export/import option is fortunately already available - it can be found under available studs. There are options to either export your selected studs to a file, or mix them in from an imported file. If you want to use non Lego colors, you can either manually adjust the generated JSON file, or take a look at the solution in https://github.com/debkbanerji/lego-art-remix/issues/19 (it's a little weird, but it was the least time consuming solution to implement). If this is a super common use case, maybe I can also add in a way to do this on the UI - I don't have much context around how applicable this could be for use cases like this, but if there's enough demand and a way to do this without making color selection too complex in the UI I can add this in.

As for the refresh option, that's a good one. It's come up before so it looks like this is probably annoying for many people. I've opened https://github.com/debkbanerji/lego-art-remix/issues/30 for this, but depending on how annoying this is to implement, it might be a while before I can add this in (lots of unknowns regarding edge cases and possibly weird behavior).