<?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"); //$s1 = new CairoImageSurface(FORMATARGB32,100, 100); $s1 = $sur->createSimilar($sur->getContent(), 320, 256); $con2 = new CairoContext($s1); $con2->setSourceSurface($s, 32, 32); $con2->setOperator(CairoOperator::SOURCE); $pat = $con2->getSource(); $pat->setExtend(CairoExtend::REPEAT); $con2->paint(); $con->setSourceSurface($s1, 0, 0); $con->paint(); $sur->writeToPng(dirname(__FILE__) . "/extend-repeat-similar-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");
$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");