Changeset 6709


Ignore:
Timestamp:
07/27/10 11:33:22 (10 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.