Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^3: How to create and save an image from RGB values

by LanX (Sage)
on Dec 28, 2021 at 00:02 UTC ( #11139964=note: print w/replies, xml ) Need Help??


in reply to Re^2: How to create and save an image from RGB values
in thread How to create and save an image from RGB values

You didn't say it's such an amount of data, I'm wondering what kind of images you are creating. Charts? Fractals?

Anyway ... It's been a while since I've worked with convert , but IIRC it's possible to compose bigger pics from smaller ones.

So you could write out PPM's of small temporary chunks (like stripes of lines) and convert them to your desired compact format and finally glue all parts together.

update

) more importantly, how are you able to keep your RGB array in memory if it's too big for the disk?

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

Replies are listed 'Best First'.
Re^4: How to create and save an image from RGB values
by bliako (Monsignor) on Dec 28, 2021 at 09:30 UTC

      There is a Mandelbrot folder inside the Imager source tree. It looks like one can specify a filter to Imager. To build, I set the CPATH environment due to unable to find imconfig.h.

      $ cpanm Imager $ wget https://cpan.metacpan.org/authors/id/T/TO/TONYC/Imager-1.012.ta +r.gz $ tar xf Imager-1.012.tar.gz && cd Imager-1.012/Mandelbrot $ perl Makefile.PL $ CPATH=~/perl5/perlbrew/perls/perl-5.32.1/lib/site_perl/5.32.1/x86_64 +-linux-thread-multi/Imager/include make $ make install

      Running make test inside the Mandelbrot folder fails for me, so I created a script. Rendering and output to PNG takes 0.131 seconds.

      use strict; use warnings; use Imager; use Imager::Filter::Mandelbrot; my $im = Imager->new(xsize => 1000, ysize => 1000); $im->filter(type => 'mandelbrot',) or die("# ", $im->errstr, $/); $im->write(file => 'mandel1.png');

      The C code calls i_ppix per each pixel.

        Rendering and output to PNG takes 0.131 seconds.

        that's acceptable (even if i_ppix is setpixel-like).

      We seem to constantly talk past each other.

      You said you have Image::Magick installed and creating PPM is easy.

      Hence convert from intermediate PPMs to whatever format you want.

      This can't be slow and gives you full flexibility.

      You don't even need to create temporary PPM files since blobs are supported too.

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11139964]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (8)
As of 2022-08-18 08:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?