Skip to content

Commit

Permalink
implement progressive loading and saving of multiframe images
Browse files Browse the repository at this point in the history
commit cc0668d
Author: Dmitry Karasik <[email protected]>
Date:   Fri Nov 3 21:41:26 2023 +0100

    pod fixes

commit 608035a
Author: Dmitry Karasik <[email protected]>
Date:   Fri Nov 3 21:37:33 2023 +0100

    beautify API

commit ed33536
Author: Dmitry Karasik <[email protected]>
Date:   Fri Nov 3 13:09:58 2023 +0100

    typo fix

commit 431fe16
Author: Dmitry Karasik <[email protected]>
Date:   Fri Nov 3 13:07:36 2023 +0100

    document animation with the session loader

commit 2c97da6
Author: Dmitry Karasik <[email protected]>
Date:   Fri Nov 3 13:02:55 2023 +0100

    align the API, document it too

commit 202d869
Author: Dmitry Karasik <[email protected]>
Date:   Fri Nov 3 10:16:20 2023 +0100

    also test singleframed codecs

commit 28cd6bc
Author: Dmitry Karasik <[email protected]>
Date:   Fri Nov 3 10:00:42 2023 +0100

    fix some logic and test all codecs

commit f61bc35
Author: Dmitry Karasik <[email protected]>
Date:   Thu Nov 2 22:57:41 2023 +0100

    add image loader tests

commit b563ca7
Author: Dmitry Karasik <[email protected]>
Date:   Thu Nov 2 20:58:06 2023 +0100

    add Prima::Image::Saver

commit e35656b
Author: Dmitry Karasik <[email protected]>
Date:   Wed Nov 1 23:22:01 2023 +0100

    Image.save uses open/save/close

commit d0c2c2b
Author: Dmitry Karasik <[email protected]>
Date:   Wed Nov 1 22:36:30 2023 +0100

    cleanup API

commit cc261b2
Author: Dmitry Karasik <[email protected]>
Date:   Wed Nov 1 16:11:55 2023 +0100

    remove objectExtras from save(), unneeded

commit 92a884f
Author: Dmitry Karasik <[email protected]>
Date:   Wed Nov 1 15:44:56 2023 +0100

    try to split save() into open/next/close

commit bcad183
Author: Dmitry Karasik <[email protected]>
Date:   Tue Oct 31 15:01:39 2023 +0100

    remove appending functionality that never realized to anything useful

commit 574dce7
Author: Dmitry Karasik <[email protected]>
Date:   Mon Oct 30 22:59:37 2023 +0100

    Prima::Image::Animate can use incremental loader

commit c60ab0c
Author: Dmitry Karasik <[email protected]>
Date:   Mon Oct 30 15:24:22 2023 +0100

    protect profiles entry

commit ab9479a
Author: Dmitry Karasik <[email protected]>
Date:   Mon Oct 30 14:56:45 2023 +0100

    try loader interface

commit e19685c
Author: Dmitry Karasik <[email protected]>
Date:   Sun Oct 29 23:05:25 2023 +0100

    extract common code for load() and frame_count()

commit 7105e4b
Author: Dmitry Karasik <[email protected]>
Date:   Sun Oct 29 22:25:48 2023 +0100

    don't coredump

commit d2135ab
Author: Dmitry Karasik <[email protected]>
Date:   Sun Oct 29 20:04:07 2023 +0100

    experimental branch for extending multiframe Image.load

    the idea is to provide API that allows sequential read,
    without the need to load all images at once
  • Loading branch information
dk committed Nov 3, 2023
1 parent 18b2c27 commit f34e71c
Show file tree
Hide file tree
Showing 24 changed files with 1,709 additions and 952 deletions.
1 change: 1 addition & 0 deletions Changes
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Revision history for Perl module Prima
- Add menus to file dialogs
- Remove obsolete RadioGroup and CheckBoxGroup - use GroupBox instead
- Proofread all documentation through Grammarly
- Add progressive image loading and saving

1.70 2023-09-03
- Use fading effects in widgets
Expand Down
2 changes: 2 additions & 0 deletions MANIFEST
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,7 @@ Prima/Image/gif.pm
Prima/Image/heif.fm
Prima/Image/heif.pm
Prima/Image/jpeg.pm
Prima/Image/Loader.pm
Prima/Image/png.pm
Prima/Image/tiff.fm
Prima/Image/tiff.pm
Expand Down Expand Up @@ -414,6 +415,7 @@ t/Image/Conversion.t
t/Image/Extract.t
t/Image/FloodFill.t
t/Image/Import.t
t/Image/Loader.t
t/Image/Path.t
t/Image/ROP.t
t/Image/Stream.t
Expand Down
2 changes: 2 additions & 0 deletions Prima.pm
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,8 @@ L<Prima::Image::Animate> - animate gif and webp files
L<Prima::Image::base64> - hardcoded image files
L<Prima::Image::Loader> - progressive loading and saving for multiframe images
L<Prima::IniFile> - support of Windows-like initialization files
L<Prima::StdBitmap> - shared access to the standard bitmaps
Expand Down
10 changes: 10 additions & 0 deletions Prima/Classes.pm
Original file line number Diff line number Diff line change
Expand Up @@ -983,6 +983,16 @@ sub save_stream
return $ok;
}

sub has_codec
{
my $what = $_[1];
my @ret;
for ( @{ Prima::Image->codecs }) {
push @ret, $_ if $_->{fileShortType} =~ m/$what/;
}
return wantarray ? @ret : $ret[0];
}

package Prima::Icon;
use vars qw( @ISA);
@ISA = qw(Prima::Image);
Expand Down
Loading

0 comments on commit f34e71c

Please sign in to comment.