File: //opt/remi/php72/root/usr/share/doc/pecl/ps/examples/image.php
<?php
define("LEFT_BORDER", 50);
define("EXAMPLE_BOX_HEIGHT", 190);
define("EXAMPLE_BOX_WIDTH", 150);
define("EXAMPLE_BOX_TITLE_HEIGHT", 40);
function begin_example_box($p, $llx, $lly, $title, $font) {
ps_save($p);
ps_translate($p, $llx, $lly);
ps_setcolor($p, "fill", "gray", 0.5, 0.0, 0.0, 0.0);
ps_rect($p, 0, EXAMPLE_BOX_HEIGHT-EXAMPLE_BOX_TITLE_HEIGHT,
EXAMPLE_BOX_WIDTH, EXAMPLE_BOX_TITLE_HEIGHT);
ps_fill($p);
ps_setcolor($p, "stroke", "gray", 1.0, 0.0, 0.0, 0.0);
ps_setfont($p, $font, 12.0);
ps_show_xy($p, $title, 10, EXAMPLE_BOX_HEIGHT-EXAMPLE_BOX_TITLE_HEIGHT+5);
ps_setlinewidth($p, 1.0);
ps_setcolor($p, "stroke", "gray", 0.0, 0.0, 0.0, 0.0);
ps_rect($p, 0, 0, EXAMPLE_BOX_WIDTH, EXAMPLE_BOX_HEIGHT);
ps_stroke($p);
ps_moveto($p, 0, EXAMPLE_BOX_HEIGHT-EXAMPLE_BOX_TITLE_HEIGHT);
ps_lineto($p, EXAMPLE_BOX_WIDTH, EXAMPLE_BOX_HEIGHT-EXAMPLE_BOX_TITLE_HEIGHT);
ps_stroke($p);
}
function end_example_box($p) {
ps_restore($p);
}
$ps = ps_new();
if (!ps_open_file($ps, "image.ps")) {
print "Cannot open PostScript file\n";
exit;
}
ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "image.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Image examples");
ps_begin_page($ps, 596, 842);
$psfont = ps_findfont($ps, "Helvetica", "", 0);
ps_setfont($ps, $psfont, 12.0);
$x = 0;
$y = 625;
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "Indexed image without alpha channel", $psfont);
$psimage = ps_open_image_file($ps, "png", "indexed.png", NULL, 0);
ps_place_image($ps, $psimage, 10, 30, 1.0);
$buffer = sprintf("%.0f x %.0f pixel", ps_get_value($ps, "imagewidth", $psimage), ps_get_value($ps, "imageheight", $psimage));
ps_setfont($ps, $psfont, 10.0);
ps_show_xy($ps, $buffer, EXAMPLE_BOX_WIDTH-10-ps_stringwidth($ps, $buffer, $psfont, 10), 10);
end_example_box($ps);
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "RGB image without alpha channel", $psfont);
$psimage = ps_open_image_file($ps, "png", "rgb.png", NULL, 0);
ps_place_image($ps, $psimage, 10, 30, 1.0);
end_example_box($ps);
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "Indexed image with alpha channel", $psfont);
$psimage = ps_open_image_file($ps, "png", "indexed-alpha.png", NULL, 0);
ps_place_image($ps, $psimage, 10, 30, 1.0);
end_example_box($ps);
$x = 0;
$y = 405;
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "RGB image with alpha channel", $psfont);
$psimage = ps_open_image_file($ps, "png", "rgb-alpha.png", NULL, 0);
ps_place_image($ps, $psimage, 10, 30, 1.0);
end_example_box($ps);
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "Jpeg gray scale image", $psfont);
$psimage = ps_open_image_file($ps, "jpeg", "gnu-head.jpg", NULL, 0);
ps_place_image($ps, $psimage, 10, 20, 0.45);
$buffer = sprintf("%.0f x %.0f pixel", ps_get_value($ps, "imagewidth", $psimage), ps_get_value($ps, "imageheight", $psimage));
ps_setfont($ps, $psfont, 10.0);
ps_show_xy($ps, $buffer, EXAMPLE_BOX_WIDTH-10-ps_stringwidth($ps, $buffer, $psfont, 10), 10);
end_example_box($ps);
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "", $psfont);
$psimage = ps_open_image_file($ps, "jpeg", "exiftest.jpg", NULL, 0);
ps_place_image($ps, $psimage, 30, 10, 0.30);
end_example_box($ps);
$x = 0;
$y = 185;
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "Images created in memory", $psfont);
$imagedata = "01234567890123456";
/* RGB */
for($i=0; $i<16; $i++)
$imagedata[$i] = chr(0);
$imagedata[0] = chr(255);
$imagedata[4] = chr(255);
$imagedata[8] = chr(255);
$psimage = ps_open_image($ps, "memory", "memory", $imagedata, 12, 2, 2, 3, 8, NULL);
ps_place_image($ps, $psimage, 20, 20, 20.0);
/* Gray */
for($i=0; $i<16; $i++)
$imagedata[$i] = chr(0);
$imagedata[0] = chr(192);
$imagedata[1] = chr(128);
$imagedata[2] = chr(64);
$imagedata[3] = chr(0);
$psimage = ps_open_image($ps, "memory", "memory", $imagedata, 4, 2, 2, 1, 8, NULL);
ps_place_image($ps, $psimage, 90, 20, 20.0);
/* CMYK */
for($i=0; $i<16; $i++)
$imagedata[$i] = chr(255);
$imagedata[0] = chr(0);
$imagedata[5] = chr(0);
$imagedata[10] = chr(0);
$imagedata[15] = chr(0);
$psimage = ps_open_image($ps, "memory", "memory", $imagedata, 16, 2, 2, 4, 8, NULL);
ps_place_image($ps, $psimage, 20, 90, 20.0);
ps_setfont($ps, $psfont, 8.0);
ps_show_xy($ps, "CMYK", 20, 80);
ps_show_xy($ps, "RGB", 20, 10);
ps_show_xy($ps, "Gray", 90, 10);
end_example_box($ps);
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "Jpeg cmyk image, rotated", $psfont);
$psimage = ps_open_image_file($ps, "jpeg", "cne-cmyk.jpg", NULL, 0);
ps_save($ps);
ps_translate($ps, 72, 10);
ps_rotate($ps, 45);
ps_place_image($ps, $psimage, 0, 0, 0.45);
ps_restore($ps);
$buffer = sprintf("%.0f x %.0f pixel", ps_get_value($ps, "imagewidth", $psimage), ps_get_value($ps, "imageheight", $psimage));
ps_setfont($ps, $psfont, 10.0);
ps_show_xy($ps, $buffer, EXAMPLE_BOX_WIDTH-10-ps_stringwidth($ps, $buffer, $psfont, 10), 10);
end_example_box($ps);
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "EPS read from memory", $psfont);
$data = file_get_contents("picture.eps");
$psimage = ps_open_image($ps, "eps", "memory", $data, strlen($data), 0, 0, 0, 0, NULL);
ps_place_image($ps, $psimage, 15, 25, 0.45);
$buffer = sprintf("%.0f x %.0f pixel", ps_get_value($ps, "imagewidth", $psimage), ps_get_value($ps, "imageheight", $psimage));
ps_setfont($ps, $psfont, 10.0);
ps_show_xy($ps, $buffer, EXAMPLE_BOX_WIDTH-10-ps_stringwidth($ps, $buffer, $psfont, 10), 10);
end_example_box($ps);
ps_end_page($ps);
ps_begin_page($ps, 596, 842);
$psfont = ps_findfont($ps, "Helvetica", "", 0);
ps_setfont($ps, $psfont, 12.0);
$x = 0;
$y = 625;
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "Gif image", $psfont);
$psimage = ps_open_image_file($ps, "gif", "debian.gif", NULL, 0);
ps_place_image($ps, $psimage, 25, 10, 2.0);
end_example_box($ps);
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "Gif image with transparency", $psfont);
$psimage = ps_open_image_file($ps, "gif", "debian-transparent.gif", NULL, 0);
ps_place_image($ps, $psimage, 25, 10, 2.0);
end_example_box($ps);
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "Gif image interlaced", $psfont);
$psimage = ps_open_image_file($ps, "gif", "interlaced.gif", NULL, 0);
ps_place_image($ps, $psimage, 10, 10, 0.65);
end_example_box($ps);
$x = 0;
$y = 405;
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "Tiff image", $psfont);
$psimage = ps_open_image_file($ps, "tiff", "debian.tiff", NULL, 0);
ps_place_image($ps, $psimage, 25, 10, 2.0);
end_example_box($ps);
$x = 0;
$y = 185;
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "Bmp image", $psfont);
$psimage = ps_open_image_file($ps, "bmp", "debian.bmp", NULL, 0);
ps_place_image($ps, $psimage, 25, 10, 2.0);
end_example_box($ps);
ps_end_page($ps);
ps_begin_page($ps, 596, 842);
$psfont = ps_findfont($ps, "Helvetica", "", 0);
ps_setfont($ps, $psfont, 12.0);
$x = 0;
$y = 625;
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "GD-Image: Indexed image without alpha channel", $psfont);
$gdim = imagecreatefrompng("indexed.png");
if($gdim) {
$psimage = ps_open_memory_image($ps, $gdim);
ps_place_image($ps, $psimage, 10, 30, 1.0);
$buffer = sprintf("%.0f x %.0f pixel", ps_get_value($ps, "imagewidth", $psimage), ps_get_value($ps, "imageheight", $psimage));
ps_setfont($ps, $psfont, 10.0);
ps_show_xy($ps, $buffer, EXAMPLE_BOX_WIDTH-10-ps_stringwidth($ps, $buffer, $psfont, 10), 10);
}
end_example_box($ps);
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "RGB image without alpha channel", $psfont);
$gdim = imagecreatefrompng("rgb.png");
if($gdim) {
$psimage = ps_open_memory_image($ps, $gdim);
ps_place_image($ps, $psimage, 10, 30, 1.0);
}
end_example_box($ps);
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "Indexed image with alpha channel", $psfont);
$gdim = imagecreatefrompng("indexed-alpha.png");
if($gdim) {
$psimage = ps_open_memory_image($ps, $gdim);
ps_place_image($ps, $psimage, 10, 30, 1.0);
}
end_example_box($ps);
$x = 0;
$y = 405;
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "RGB image with alpha channel", $psfont);
$gdim = imagecreatefrompng("rgb-alpha.png");
if($gdim) {
$psimage = ps_open_memory_image($ps, $gdim);
ps_place_image($ps, $psimage, 10, 30, 1.0);
}
end_example_box($ps);
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "Jpeg gray scale image", $psfont);
$gdim = imagecreatefromjpeg("gnu-head.jpg");
if($gdim) {
$psimage = ps_open_memory_image($ps, $gdim);
ps_place_image($ps, $psimage, 10, 20, 0.45);
$buffer = sprintf("%.0f x %.0f pixel", ps_get_value($ps, "imagewidth", $psimage), ps_get_value($ps, "imageheight", $psimage));
ps_setfont($ps, $psfont, 10.0);
ps_show_xy($ps, $buffer, EXAMPLE_BOX_WIDTH-10-ps_stringwidth($ps, $buffer, $psfont, 10), 10);
}
end_example_box($ps);
begin_example_box($ps, LEFT_BORDER+(EXAMPLE_BOX_WIDTH+30)*($x++), $y, "", $psfont);
$gdim = imagecreatefromjpeg("exiftest.jpg");
if($gdim) {
$psimage = ps_open_memory_image($ps, $gdim);
ps_place_image($ps, $psimage, 30, 10, 0.30);
}
end_example_box($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
?>