#!/usr/bin/perl use strict; use warnings; use utf8; use GD; my $jpeg_filename = 'a.jpg'; my $gif_filename = 'b.gif'; open( my $insert_fh, '<', $gif_filename ) or die "Kann nicht öffnen: $!"; open( my $out_fh, '<', $jpeg_filename ) or die "Kann nicht öffnen: $!"; # erzeuge Bild aus JPEG-Datei my $image = GD::Image->newFromJpeg($out_fh) or die; # erzeuge Bild aus GIF-Datei my $insert_image = GD::Image->newFromGif($insert_fh) or die; # Ausschnitt Koordinate und Größe B/H definieren my @src_coord = ( 200, 200 ); my @src_size = ( 120, 120 ); # Zielkoordinate und-größe definieren my @dest_coord = ( 200, 100 ); my @dest_size = ( 100, 100 ); # Bildausschnitt in Zielbild einfügen $image->copyResampled( $insert_image, @dest_coord, @src_coord, @dest_size, @src_size ); # Zieldatei öffen open( my $fh, '>', "new_$jpeg_filename" ) or die "Öfnen schlug fehl: $!"; # auf bin?n Modus umschalten binmode $fh; # JPEG-Datenstrom in Datei ausgeben print $fh $image->jpeg; # Datei schließen close $fh or die "Speichern schlug fehl: $!";