Comments (5)
You're right, the palette is is read during decoding and then thrown away. A new palette will be created on save.
Changing this will take some significant work though.
Just curious: why is it important to keep the palette in the same order?
from chunky_png.
When working with pixel art,most pixel artists order the palette manually in a specific way. For example, there's a ramp of grayscales, a ramp of red colors, a ramp of greens, etc. This makes it easy to use such a palette in programs such as graphx2, gimp, etc. If the palette's order gets changed, then it also gets jumbled in the user interface of these programs, which is undesirable.
I'm considering using ChunkyPNG for yet another pixel art editor, so I need palette to be preserved. I know it's quite a lot of work, so I forked the repository and I'll poke at it a bit.
from chunky_png.
Just a note about this: there might be times (and I think that most of the times) where you might want to use the current behaviour as the default one. Your case @beoran is a particular case, and while it seems very interesting and useful, most of the users will want just the minimal palette on their pngs.
btw: cool library!!
from chunky_png.
Yes, I am not going to implement this myself, although I do welcome patches that implement this, as long as it keeps the standard use case in mind.
from chunky_png.
Going to close this; fixing this would be a major rewrite of the library.
from chunky_png.
Related Issues (20)
- Face with "NoMethodError: undefined method `-' for nil:NilClass" error if compare images with NO DIFFERENCES HOT 6
- Release gem with support for iTXt chunks? HOT 2
- undefined method `value' for #<ChunkyPNG::Chunk::InternationalText:0x000000038f46e0> HOT 1
- how to set DPI HOT 2
- Memory leak HOT 3
- NameError: uninitialized constant ChunkyPNG::Encoding where EMPTY_BYTEARRAY = "".force_encoding(Encoding::BINARY).freeze was changed from EMPTY_BYTEARRAY = force_binary(String.new).freeze HOT 1
- Frozen string literal usage unsupported in Ruby 1.9.x HOT 1
- NoMethodError: undefined method `b' for "\x00":String HOT 1
- Getting "can't modify frozen string (TypeError)" HOT 2
- Ruby 3.0.0
- Error by using watir-extensions-element-screenshot on Firefox 85.0.1 HOT 2
- .rbenv/versions/3.0.0/lib/ruby/3.0.0/set/sorted_set.rb:4:in `rescue in <top (required)>': The `SortedSet` class has been extracted from the `set` library.You must use the `sorted_set` gem or other alternatives. (RuntimeError) HOT 1
- from_rgb_stream : calculation of width and height HOT 6
- Changelog is missing entries from version 1.3.12 to 1.4.0 HOT 2
- Requires sorted_set gem with Ruby 3.0 HOT 3
- Wrong hue for #0A000A
- [Documentation] More examples?
- Write text on spicific position HOT 3
- spec test suite of chunky_png 1.4.0 fails with upcoming ruby32 due to Object#:~ removal
- ChunkyPNG::Canvas.from_file fails outside main Ractor HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chunky_png.