1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl -w
use Image::Magick;
$image = Image::Magick -> new;
$image -> Set(size => '10x10');
$image -> ReadImage ('canvas:white');
$image -> Set('pixel[1,1]' => 'red');
$image -> Set ('pixel[1,2]' => 'red');
@pixels = ();
$pixels[0]=0.5;
$image -> SetPixel (x=>1, y=>1, color => \@pixels);
$image -> Write ('test.png');
1
2
3
4
5
6
Canvas auf Rot setzen
Schleife über alle Pixel im Bild {
Intensität des Pixels auslesen
Intensität neu setzen
Intensität zurückschreiben
}
QuoteErklär doch bitte mal genau, welche Werte du zuordnen willst.um mehreren Pixeln die verschiedenen Werte aus dem Array zuzuordnen?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#!/usr/bin/perl use strict; use warnings; use Image::Magick; my $image = Image::Magick -> new; $image -> Set(size => '10x10'); $image -> ReadImage ('canvas:red'); my ($width, $height) = $image->Get('width', 'height'); my %myRGB; $myRGB{'0,0'} = [ 1, .5, 0 ]; $myRGB{'5,5'} = [ 0, 1, 0 ]; $myRGB{'3,2'} = [ 1, 1, .2 ]; $myRGB{'4,8'} = [ 0, 0, 1 ]; for my $x (0..$width-1) { for my $y (0..$height-1) { if (exists $myRGB{"$x,$y"}) { $image -> SetPixel (x=>$x, y=>$y, color => $myRGB{"$x,$y"} ) } } } $image -> Write ('test.png');
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
# Rotpunkte mit verschiedener Intensität $image = Image::Magick -> new; $image -> Set(size => '10x10'); $image -> ReadImage ('canvas:red'); %myRGB = (); # Intesität setzen $myRGB{'0,0'} = 1; $myRGB{'5,5'} = .2; $myRGB{'3,2'} = .5; $myRGB{'4,8'} = .7; for my $x (0..$width-1) { for my $y (0..$height-1) { if (exists $myRGB{"$x,$y"}) { $image -> SetPixel ( x=>$x, y=>$y, # setze Intensität für Rot color => [ $myRGB{"$x,$y"}, 0, 0 ] ); } } } $image -> Write ('test2.png');