Changeset 6709


Ignore:
Timestamp:
Jul 27, 2010, 11:33:22 AM (14 years ago)
Author:
ronosman
Message:

Fix watermark creation issue + high resized ignored.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/pLoader/trunk/src/Uploader/ResizeWorker.pm

    r6707 r6709  
    1919    event_handler
    2020    cancel_event
     21    gravity
     22    rgbcolor
    2123/);
    2224
     
    2527    my ( $self ) =@_;
    2628
     29    $self->gravity(
     30        {
     31            'Top'          => 'North',
     32            'Left'         => 'West',
     33            'Right'        => 'East',
     34            'Bottom'       => 'South',
     35            'Top left'     => 'NorthWest',
     36            'Top right'    => 'NorthEast',
     37            'Bottom left'  => 'SouthWest',
     38            'Bottom right' => 'SouthEast',
     39            'Center'       => 'Center',
     40       }   
     41    );   
     42
     43    $self->rgbcolor(
     44        {
     45            "White" => '#FFFFFF',
     46            "Black" => '#000000',
     47        }   
     48    );
    2749}
    2850
     
    256278   
    257279    undef $imgk;
     280
     281    if($preferences->{watermark_activate}){
     282        $self->create_watermark(
     283            $preferences,
     284            $image->{site_resized_file}
     285        );
     286    }
    258287
    259288   
     
    416445        warn "$status" if $status ;
    417446       
     447        $imgk->Write(
     448            sprintf(
     449                "%s:%s",
     450                $self->write_type,
     451                $image->{site_high_file},
     452            )
     453        );
     454        warn "$status" if $status ;
    418455       
    419456        undef $imgk;
    420457
    421458        if($bAddWatermark){
    422             my $file_out = $image->{site_high_file};
    423459            $self->create_watermark(
    424                 $preferences->{watermark_text},
    425                 $preferences->{watermark_text_size},
    426                 $preferences->{watermark_position},
    427                 $preferences->{watermark_x},
    428                 $preferences->{watermark_y},
    429                 $preferences->{watermark_color},
    430                 $file_out
     460                $image->{preferences},
     461                $image->{site_high_file}
    431462            );
    432463        }
     
    477508            $self->write_type,
    478509        ),
     510    );
     511}
     512
     513
     514sub create_watermark {
     515    my ( $self, $preferences, $file_out ) = @_;
     516   
     517    my $rval = 1 ;
     518
     519    my $text = $preferences->{watermark_text};
     520    my $text_size = $preferences->{watermark_text_size};
     521    my $w_position = $preferences->{watermark_position};
     522    my $x = $preferences->{watermark_x};
     523    my $y = $preferences->{watermark_y};
     524    my $color = $preferences->{watermark_color};
     525
     526    my $gravity = $self->gravity->{$w_position};
     527    my $fill = $self->rgbcolor->{$color};
     528
     529    # debug
     530    #printf("Create watermark %s\n", $file_out);
     531
     532   
     533
     534    my $imgk = new Image::Magick;
     535   
     536    my $status = $imgk->ReadImage(
     537        $file_out
     538    );     
     539
     540    my $ratio = $imgk->Get('height')/($preferences->{resize_h}||$imgk->Get('height'));
     541    $ratio||=1;
     542    $text ||="Your watermark";
     543    $imgk->Annotate(
     544        pointsize => $text_size*$ratio,
     545        fill => $fill,
     546        x => $x*$ratio,
     547        y => $y*$ratio,
     548        text => $text,
     549        gravity => $gravity,
     550    );
     551                     
     552    $imgk->Write(
     553        sprintf(
     554            "%s:%s",
     555            $self->write_type,
     556            $file_out,
     557        )
    479558    );
    480559}
Note: See TracChangeset for help on using the changeset viewer.