!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/7.3.33 

uname -a: Linux web25.us.cloudlogin.co 5.10.237-xeon-hst #1 SMP Mon May 5 15:10:04 UTC 2025 x86_64 

uid=233359(alpastrology) gid=888(tty) groups=888(tty),33(tape) 

Safe-mode: OFF (not secure)

/usr/lib64/perl5/vendor_perl/Prima/examples/   drwxr-xr-x
Free 6181.91 GB of 6263.12 GB (98.7%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     blend.pl (5.35 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
=pod

=head1 NAME

examples/blend.pl - Prima alpha blending

=head1 FEATURES

Demonstrates use of Prima image alpha blending with C<rop::blend($ALPHA)>.

=cut


use strict;
use warnings;
use Prima qw(Application Label Sliders ImageViewer);

my ($rop_name, $rop_val);
my $w = Prima::MainWindow->new(
    size => [ 600, 500 ],
    designScale => [7, 16],
    text => 'Blending example',
    menuItems => [
        [ '~Binary' => [ map { [$_, $_, \&bin, {group => 1}] } qw(
            CopyPut XorPut AndPut OrPut NotPut Invert Blackness
            NotDestAnd NotDestOr Whiteness NotSrcAnd NotSrcOr NotXor
            NotAnd NotOr NoOper
        )]],
        [ 'Porter-~Duff' => [ map { [$_, $_, \&pd, {group => 1}] } qw(
            SrcOver Xor DstOver SrcCopy DstCopy Clear
            SrcIn DstIn SrcOut DstOut SrcAtop DstAtop
        )]],
        [ '~Photoshop' => [ map { [$_, $_, \&pd, {group => 1}] } qw(
            Add Multiply Screen Overlay Darken
            Lighten ColorDodge ColorBurn HardLight
            SoftLight Difference Exclusion
        )]],
    ]
);

my $a = Prima::Image->new(
    size => [200,200],
    type => im::RGB,
);
$a->begin_paint;
$a->new_gradient( palette => [cl::LightGreen, cl::Blue ])->bar(0, 0, $a->size);
$a->end_paint;
my $ia = Prima::Icon->new(
    size => [200,200],
    type => im::RGB,
    maskType => im::bpp8,
    autoMasking => am::MaskColor,
    maskColor => cl::Black,
);
$ia->put_image(0,0,$a);
$ia->color(cl::Black);
$ia->bar(0,0,30,200);
$ia->bar(170,0,200,200);

my $b = $a->dup;
$b->begin_paint;
$b->bar(0,0,$b->size);
$b->new_gradient( palette => [cl::LightRed, cl::Yellow ])-> ellipse($b->width/2,$b->height/2, $b->size);
$b->end_paint;

my $ib = Prima::Icon->new(
    size => [200,200],
    type => im::RGB,
    maskType => im::bpp8,
    autoMasking => am::MaskColor,
    maskColor => cl::Black,
);
$ib->put_image( 0,0,$b);

my $base = $a->dup;
$base->set( backColor => cl::White, color => cl::Black, fillPattern => [(0xF0)x4, (0xF)x4], rop2 => rop::CopyPut);
$base->bar(0,0,$base->size);

my $canvas = $a->dup;
my $precanvas = Prima::Icon->new(
    size => [200,200],
    type => im::RGB,
    maskType => im::bpp8,
    autoMasking => am::None,
);
$ia->autoMasking(am::None);

my $mask = Prima::Image->new(
    size => [200,200],
    type => im::Byte,
);

sub repaint
{
    my $sa = $w->SliderA;
    my $sb = $w->SliderB;
    if ( $sa->enabled ) {
        $precanvas->put_image(0,0,$ia, rop::alpha( rop::SrcCopy | rop::Premultiply, $sa->value));
        $precanvas->put_image(0,0,$ib, rop::alpha( $rop_val     | rop::Premultiply, $sb->value));
        $canvas->put_image(0,0,$base);
        $canvas->put_image(0,0,$precanvas);
    } else {
        $canvas->put_image(0,0,$a);
        $canvas->put_image(0,0,$b,$rop_val);
    }

    my $fader = $w->Fader;
    $canvas->put_image(2, 2, $fader->{banner}, rop::alpha( rop::SrcOver | rop::Premultiply, $fader->{alpha} ))
        if $fader->{banner};
    $w-> ImageViewer1->repaint;
}

sub select_rop
{
    my ($newrop, $with_slider) = @_;
    $rop_name = $newrop;
    $rop_val = &{${rop::}{$rop_name}}();
    $w->SliderA->enabled( $with_slider );
    $w->SliderA->readOnly( !$with_slider );
    $w->SliderB->enabled( $with_slider );
    $w->SliderB->readOnly( !$with_slider );
    $w->Fader->{text} = $rop_name;
    delete $w->Fader->{left};
    $w->Fader->{steps} = 30;
    $w->Fader->start;
    repaint();
}

sub set_slider
{
    $w->Fader->{text} = shift->value;
    $w->Fader->{steps} = 15;
    delete $w->Fader->{left};
    $w->Fader->start;
    repaint();
}
sub bin { select_rop($_[1], 0) }
sub pd  { select_rop($_[1], 1) } 


$w-> insert( ImageViewer =>
    pack => {side => 'top', fill => 'both', pad => 10, expand => 1},
    image => $canvas,
    stretch => 1,
);

$w->insert( Label => 
    text => '~Green transparency',
    focusLink => 'SliderA',
    pack => {side => 'top', fill => 'x', padx => 15},
);

$w->insert( Slider =>
    min => 0,
    max => 255,
    value => 200,
    scheme => ss::Axis,
    increment => 16,
    name => 'SliderA',
    pack => {side => 'top', fill => 'x'},
    onChange => \&set_slider,
);

$w->insert( Label => 
    text => '~Red transparency',
    focusLink => 'SliderB',
    pack => {side => 'top', fill => 'x', padx => 15},
);

$w->insert( Slider =>
    min => 0,
    max => 255,
    scheme => ss::Axis,
    increment => 16,
    value => 200,
    name => 'SliderB',
    pack => {side => 'top', fill => 'x'},
    onChange => \&set_slider,
);

$w-> insert( Timer => 
    timeout => 50,
    name => 'Fader',
    onTick => sub {
        my $self = shift;
        if ( !defined $self->{left}) {
            $self->{left} = $self->{steps};
            $canvas-> begin_paint_info;
            $canvas->font->set( size => 18, style => fs::Bold );
            my $f = $canvas->font;
            my $b = Prima::Icon->new(
                type        => im::RGB,
                size        => [ $canvas->get_text_width( $self->{text}, 1 ) + 4, $f-> height + 4 ],
                color       => cl::Yellow,
                backColor   => cl::Black,
                lineWidth   => 5,
                maskType    => 8,
                autoMasking => 0,
                font        => { vector => 1 },
            );
            $canvas-> end_paint_info;
            $b->begin_paint;
            $b->clear;
            $b->font->set( size => 18, style => fs::Bold );
            $b->color(0x010101); # black but not zero
            my $path = $b->new_path;
            $path->translate(2,2);
            $path->text( $self->{text});
            $path->stroke;
            $b->color(cl::Yellow);
            $b->text_out($self->{text}, 2, 2);
            $b->end_paint;

            my $bb = $b->clone( type => im::Byte, rop2 => rop::CopyPut );
            $bb->map(0x000000); # black and zero
            $b->mask( $bb->data );

            $self->{banner} = $b;
            $self->{alpha} = 255;
        } elsif ( --$self->{left} <= 0 ) {
            delete $self->{banner};
            delete $self->{left};
            $self->stop;
        } else {
            $self->{alpha} -= 256 / $self->{steps};
        }
        repaint;
    },
);
$w->Fader->{steps} = 30;

select_rop('SrcOver', 1);

run Prima;

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.011 ]--