Comments (6)
After parsing the RGB stream, the resulting Canvas has #width
and #height
that you can call
from chunky_png.
Thanks wvanberge but i wasn't specific enough. Here is the code :
require('chunky_png')
include(ChunkyPNG)
# Constants
RGB_SIZE = 6
binary = File.open('./data', 'rb')
hexStream = ""
binary.each_char() do |char|
hexStream += char.unpack('H*').join()
end
binary.close()
rgbStream = hexStream.scan(/.{#{RGB_SIZE}}/)
if (rgbStream.last().size() === RGB_SIZE)
# how to calculate the correct width and height ?
ChunkyPNG::Canvas.from_rgb_stream(74, 74, [rgbStream.join()].pack('H*')).save('./test.png')
end
from chunky_png.
You can't calculate those: an RGB strean is just a stream of pixels, so there's no way to know whether a stream of 4 pixels is a 1x4 image or a 2x2. This is why you have to supply these arguments.
from chunky_png.
If we know the number of pixels in an image of 1x1 it can not help me, according to the DPI used by 'ChunkyPNG::Canvas' ?
from chunky_png.
from_rgb_stream
basically is: "please construct a canvas of this size, and use this pixeldata for it."
If you know the image is 1x1, you can use 1, 1
as first two arguments to from_rgb_stream
. The RGB stream for the third argument should then be 3 bytes long.
from chunky_png.
Thank you very much, "chunky_png" is an elegant solution.
from chunky_png.
Related Issues (20)
- 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
- 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
- Output is non-deterministic 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.