function
add_wm(
$nmw_water
,
$src_file
,
$output_file
,
$x
,
$y
) {
if
(
file_exists
(
$output_file
))
return
;
$w1
= MagickGetImageWidth(
$nmw_water
);
$h1
= MagickGetImageHeight(
$nmw_water
);
$nmw
=NewMagickWand();
MagickReadImage(
$nmw
,
$src_file
);
$lt_w
= 50;
$lt_h
= 50;
if
(
$x
== 0){
$w
= MagickGetImageWidth(
$nmw
);
$h
= MagickGetImageHeight(
$nmw
);
$x
=
$w
;
$y
=
$h
;
}
else
{
$lt_w
= 30;
$lt_h
= 40;
}
MagickCompositeImage(
$nmw
,
$nmw_water
, MW_OverCompositeOp,
$x
-
$w1
-
$lt_w
,
$y
-
$h1
-
$lt_h
);
MagickWriteImage(
$nmw
,
$output_file
);
DestroyMagickWand(
$nmw
);
}
function
add_wm_recurse(
$nmw_water
,
$to_dir
,
$output_dir
,
$arr
) {
$dp
= dir(
$to_dir
);
while
(
$file
=
$dp
->read()){
if
(
$file
!= '.' &&
$file
!= '..'){
if
(
is_dir
(
$to_dir
. '/' .
$file
)){
mkdir
(
$output_dir
. '/' .
$file
);
add_wm_recurse(
$nmw_water
,
$to_dir
. '/' .
$file
,
$output_dir
. '/' .
$file
,
$arr
);
}
else
{
if
(!
array_key_exists
(
$to_dir
. '/' .
$file
,
$arr
)){
continue
;
}
$sub_arr
=
$arr
[
$to_dir
. '/' .
$file
];
if
(
$sub_arr
){
$x
=
intval
(
$sub_arr
[0]);
$y
=
intval
(
$sub_arr
[1]);
add_wm(
$nmw_water
,
$to_dir
. '/' .
$file
,
$output_dir
. '/' .
$file
,
$x
,
$y
);
}
}
}
}
$dp
->close();
}
$to_dir
= './resized';
$output_dir
= './output';
$arr
=
array
(
array
(50, 50)
);
$water
= './water.png';
$nmw_water
=NewMagickWand();
MagickReadImage(
$nmw_water
,
$water
);
add_wm_recurse(
$nmw_water
,
$to_dir
,
$output_dir
,
$arr
);
DestroyMagickWand(
$nmw_water
);