#! perl -slw use strict; use GD; sub rgba2n { unpack 'N', pack 'C4', pop, @_ } my $src = GD::Image->newFromJpeg( $ARGV[0], 1 ) or die $!; my $dia = $src->width < $src->height ? $src->width : $src->height; my $maxDia = sqrt( $src->width**2 + $src->height**2 ); my $thickness = 10; my $alpha = 127; my $alphaDelta = $thickness * 127 / ( $maxDia - $dia ); $src->setThickness( $thickness ); while ( $dia < $maxDia ) { $src->ellipse( $src->width / 2, $src->height /2, $dia, $dia, rgba2n( 0, 0, 0, $alpha ) ); $alpha -= $alphaDelta; $dia += $thickness; } open PNG, '>:raw', "vigged.png"; print PNG $src->png; close PNG; ## Look at the result; starts default image editor. system 'vigged.png';