$con = new CairoContext($s); $con->setSourceRgb(1, 1, 1); $con->rectangle(0, 0, $surface_size / 2, $surface_size / 2); $con->fill(); $con->setSourceRgb(1, 0, 0); $con->rectangle($surface_size / 2, 0, $surface_size / 2, $surface_size / 2); $con->fill(); $con->setSourceRgb(0, 1, 0); $con->rectangle(0, $surface_size / 2, $surface_size / 2, $surface_size / 2); $con->fill(); $con->setSourceRgb(0, 0, 1); $con->rectangle($surface_size / 2, $surface_size / 2, $surface_size / 2, $surface_size / 2); $con->fill(); // $s->writeToPng(dirname(__FILE__) . "temp1.png"); } $size = 90; $sur = new CairoPSSurface("ps-surface-source.ps", $size, $size); $sur->setFallbackResolution(72, 72); $con = new CairoContext($sur); $con->setSourceRgb(0, 0, 0); $con->paint(); $surface_size = $size - 30; $s = new CairoPSSurface("temp.pdf", $surface_size, $surface_size); draw_pattern($surface_size); $s->writeToPng(dirname(__FILE__) . "/temp1.png"); $con->setSourceSurface($s, 15.0, 15.0); $con->paint(); $sur->writeToPng(dirname(__FILE__) . "/ps-surface-source-php.png"); ?>
$c = array(); $color = ""; $color .= chr(0xff); $color .= chr(0xff); $color .= chr(0xff); $color .= chr(0xff); $c[0] = $color; $color = ""; $color .= chr(0x0); $color .= chr(0x0); $color .= chr(0xff); $color .= chr(0xff); $c[1] = $color; $color = ""; $color .= chr(0x0); $color .= chr(0xff); $color .= chr(0x0); $color .= chr(0xff); $c[2] = $color; $color = ""; $color .= chr(0xff); $color .= chr(0x0); $color .= chr(0x0); $color .= chr(0xff); $c[3] = $color; for ($i = 0; $i < 4; $i++) { $s->createForData($c[$i], CairoFormat::RGB24, 1, 1, 4); $con->setSourceSurface($s, $i % 2, $i / 2); $con->paint(); } $sur->writeToPng(dirname(__FILE__) . "/move-to-show-surface-php.png");
$data .= chr(0xff); } for ($i = 0; $i < 2; $i++) { $data .= chr(0x0); $data .= chr(0xff); $data .= chr(0x0); $data .= chr(0xff); $data .= chr(0x0); $data .= chr(0xff); $data .= chr(0x0); $data .= chr(0xff); $data .= chr(0xff); $data .= chr(0x0); $data .= chr(0x0); $data .= chr(0xff); $data .= chr(0xff); $data .= chr(0x0); $data .= chr(0x0); $data .= chr(0xff); } $con->setSourceRgb(0, 0, 0); $con->paint(); $s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100); $s->createForData($data, CairoFormat::RGB24, 4, 4, 16); //$con->test_paint_checkered(); $con->scale(0.5, 0.5); $con->setSourceSurface($s, 4, 4); $pat = $con->getSource(); $pat->setFilter(CairoFilter::NEAREST); $con->paint(); $sur->writeToPng(dirname(__FILE__) . "/scale-down-source-surface-paint-php.png");
<?php $sur = new CairoImageSurface(CairoFormat::ARGB32, 36, 36); $con = new CairoContext($sur); $s = new CairoImageSurface(CairoFormat::ARGB32, 2, 2); $con2 = new CairoContext($s); $con2->setSourceRgb(1, 0, 0); $con2->paint(); $con2->setSourceRgb(0, 0, 1); $con2->rectangle(0, 1, 1, 1); $con2->rectangle(1, 0, 1, 1); $con2->fill(); $con->setSourceRgb(0, 0, 0); $con->paint(); $con->save(); $con->translate(3, 3); $con->scale(10, 10); $con->translate(0.5, 0.5); $con->setSourceSurface($s, 0, 0); $con->paint(); $con->restore(); $sur->writeToPng(dirname(__FILE__) . "/filter-bilinear-extents-php.png"); ?>
<?php $sur = new CairoImageSurface(CairoFormat::ARGB32, 256 + 32 * 2, 192 + 32 * 2); $con = new CairoContext($sur); $s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100); $s->createFromPng(dirname(__FILE__) . "/romedalen.png"); $con->setSourceSurface($s, 32, 32); $pat = $con->getSource(); $pat->setExtend(CairoExtend::REPEAT); $con->setSource($pat); $con->paint(); $sur->writeToPng(dirname(__FILE__) . "/extend-repeat-php.png"); ?>
<?php $size = 10; $pad = 2; $sur = new CairoImageSurface(CairoFormat::ARGB32, $size, $size); $con = new CairoContext($sur); $con->setSourceRgb(0, 0, 1); $con->rectangle($pad, $pad, $size - 2 * $pad, $size - 2 * $pad); $con->fill(); $s = $con->getGroupTarget(); $c = $s->getContent(); $s1 = $s->createSimilar($c, $size / 2, $size / 2); $c = new CairoContext($s1); $c->setSourceRgb(1, 0, 0); $c->rectangle($pad, $pad, $size - 2 * $pad, $size - 2 * $pad); $c->fill(); $s1->setDeviceOffset($size / 2, $size / 2); $con->setSourceSurface($s1, $size / 2, $size / 2); $con->paint(); $sur->writeToPng(dirname(__FILE__) . "/device-offset-positive-php.png");
$data .= chr(0xff); } for ($i = 0; $i < 2; $i++) { $data .= chr(0x0); $data .= chr(0xff); $data .= chr(0x0); $data .= chr(0xff); $data .= chr(0x0); $data .= chr(0xff); $data .= chr(0x0); $data .= chr(0xff); $data .= chr(0xff); $data .= chr(0x0); $data .= chr(0x0); $data .= chr(0xff); $data .= chr(0xff); $data .= chr(0x0); $data .= chr(0x0); $data .= chr(0xff); } echo $data; //$con->setSourceRgb(0,0,0); //$con->paint(); $s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100); $s->createForData($data, CairoFormat::RGB24, 4, 4, 16); $con->scale(2, 2); $con->setSourceSurface($s, 1, 1); $pat = $con->getSource(); $pat->setFilter(CairoFilter::NEAREST); $con->paint(); $sur->writeToPng(dirname(__FILE__) . "/scale-source-surface-paint-php.png");
$data .= chr(0x0); $data .= chr(0x80); $data .= chr(0x80); } for ($i = 0; $i < 2; $i++) { $data .= chr(0x0); $data .= chr(0x80); $data .= chr(0x0); $data .= chr(0x80); $data .= chr(0x0); $data .= chr(0x80); $data .= chr(0x0); $data .= chr(0x80); $data .= chr(0x80); $data .= chr(0x0); $data .= chr(0x0); $data .= chr(0x80); $data .= chr(0x80); $data .= chr(0x0); $data .= chr(0x0); $data .= chr(0x80); } echo $data; $s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100); $s->createForData($data, CairoFormat::ARGB32, 4, 4, 16); $con->scale(4, 4); $con->setSourceSurface($s, 2, 2); $pat = $con->getSource(); $pat->setFilter(CairoFilter::NEAREST); $con->paint(); $sur->writeToPng(dirname(__FILE__) . "/paint-source-alpha-php.png");
<?php $sur = new CairoImageSurface(CairoFormat::ARGB32, 2, 2); $con = new CairoContext($sur); $s = new CairoImageSurface(CairoFormat::ARGB32, 2, 2); $file = fopen(dirname(__FILE__) . "/create-from-png-ref.png", "r"); $s->createFromPng($file); $con->setSourceSurface($s); $con->paint(); $sur->writeToPng(dirname(__FILE__) . "/create-from-png-stream-php.png");
$width = $pad + $points * 2 + $pad; $height = $width; $sur = new CairoImageSurface(CairoFormat::ARGB32, $width, $height); $s = new CairoImageSurface(CairoFormat::ARGB32, 1, 1); $con = new CairoContext($sur); $c = new CairoContext($s); $c->setSourceRgb(0, 0, 0); $c->paint(); $con->setSourceRgb(1, 1, 1); $con->paint(); $con->setSourceRgb(0, 0, 0); $con->translate($pad, $pad); $con->setAntialias(CairoAntialias::MODE_NONE); for ($i = 0; $i < $points; $i++) { for ($j = 0; $j < $points; $j++) { $t1 = 2 * $i + ($i + 1) * $step; $t2 = 2 * $j + ($j + 1) * $step; $con->setSourceSurface($s, $t1, $t2); $pat = $con->getSource(); $pat->setFilter(CairoFilter::NEAREST); $con->paint(); } } $sur->writeToPng(dirname(__FILE__) . '/a1-image-sample-php.png'); ?>
$sur = new CairoImageSurface(CairoFormat::ARGB32, 90, 90); $con = new CairoContext($sur); $surface_size = (90 - 30) / 10; $con->setSourceRgba(0, 0, 0, 1); $con->rectangle(0, 0, 90, 90); $con->fill(); $surface = new CairoImageSurface(CairoFormat::RGB24, $surface_size, $surface_size); $con2 = new CairoContext($surface); $con2->setSourceRgb(1, 1, 1); $con2->rectangle(0, 0, $surface_size / 2, $surface_size / 2); $con2->fill(); $con2->setSourceRgb(1, 0, 0); $con2->rectangle($surface_size / 2, 0, $surface_size / 2, $surface_size / 2); $con2->fill(); $con2->setSourceRgb(0, 1, 0); $con2->rectangle(0, $surface_size / 2, $surface_size / 2, $surface_size / 2); $con2->fill(); $con2->setSourceRgb(0, 0, 1); $con2->rectangle($surface_size / 2, $surface_size / 2, $surface_size / 2, $surface_size / 2); $con2->fill(); $con->scale(10, 10); $con->setSourceSurface($surface, 1.5, 1.5); /* Using EXTEND_REFLECT makes this test pass for image and xlib backends */ $pattern = $con->getSource(); $pattern->setExtend(CairoExtend::PAD); $con->rectangle(1.5, 1.5, 6, 6); $con->clip(); $con->setSource($pattern); $con->paint(); $sur->writeToPng(dirname(__FILE__) . "/extend-pad-php.png");