use
'GFX-Tools-Buffer::matrix'
;
sub
new {
my
$class
=
shift
;
$self
= {
percentage
=> 0.1, };
bless
$self
,
$class
;
}
sub
setPercentage {
my
(
$self
,
$p
) =
@_
;
$self
->{percentage} =
$p
;
}
sub
ditherBlue {
my
(
$self
,
$matrixbitmapobj
) =
@_
;
my
$matrix
=
$matrixbitmapobj
->getMatrix;
my
$pngbppmultiplynumber
= 4 - 1;
for
(
my
$j
= 0;
$j
<
$matrix
->getRowsNumber *
$pngbppmultiplynumber
;
$j
++) {
for
(
my
$i
= 0;
$i
<
$matrix
->getColumnsNumber;
$i
++) {
for
(
my
$rgbanumber
=
$pngbppmultiplynumber
;
$rgbanumber
>= 0;
$rgbanumber
--) {
if
(
$rgbanumber
== 2) {
$matrix
->setAtIndex(
$j
,
$i
,
hex
(floor(
$matrix
->indexOf(
$j
,
$i
) *
$self
->{percentage})));
}
}
}
}
return
MatrixBitmap->new->setMatrix(
$matrix
);
}
1;