本文整理汇总了PHP中imagick::compositeImage方法的典型用法代码示例。如果您正苦于以下问题:PHP imagick::compositeImage方法的具体用法?PHP imagick::compositeImage怎么用?PHP imagick::compositeImage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类imagick
的用法示例。
在下文中一共展示了imagick::compositeImage方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: makethumb
function makethumb($srcFile, $dstFile, $dstW, $dstH, $imwf = false)
{
$im = new imagick($srcFile);
$source_w = $im->getImageWidth();
$source_h = $im->getImageHeight();
if ($dstW === 0 && $dstH === 0) {
$dstW = $source_w;
$dstH = $source_h;
} else {
// 取得縮在此範圍內的比例
$percent = getResizePercent($source_w, $source_h, $dstW, $dstH);
$dstW = $source_w * $percent;
$dstH = $source_h * $percent;
}
$im->thumbnailImage($dstW, $dstH);
$im->writeImage($dstFile);
$watermarkFile = './logo.png';
if ($imwf && is_file($watermarkFile) && is_file($dstFile)) {
$image = new imagick($dstFile);
$watermark = new imagick($watermarkFile);
$iWidth = $image->getImageWidth();
$iHeight = $image->getImageHeight();
$wWidth = $watermark->getImageWidth();
$wHeight = $watermark->getImageHeight();
if ($iHeight < $wHeight || $iWidth < $wWidth) {
$watermark->scaleImage($iWidth, $iHeight);
$wWidth = $watermark->getImageWidth();
$wHeight = $watermark->getImageHeight();
}
$x = ($iWidth - $wWidth) / 2;
$y = ($iHeight - $wHeight) / 2;
$image->compositeImage($watermark, imagick::COMPOSITE_OVER, $x, $y);
$image->writeImage($dstFile);
}
}
示例2: generate
private function generate()
{
$taken_seats_result = $this->seatbooking->get_taken_seats_ids();
$taken_seats = array();
foreach ($taken_seats_result as $seat) {
$taken_seats[$seat] = 0;
}
$coords = $this->load_xmlconfig_to_array();
$taken_seats_coords = array_intersect_key($coords, $taken_seats);
$bg = new imagick($this->filename_bg);
$marker = new imagick($this->filename_marker);
$marker_width = $marker->getImageWidth();
$marker_height = $marker->getImageHeight();
foreach ($taken_seats_coords as $seat) {
$x = $seat[0] - floor($marker_width / 2);
$y = $seat[1] - floor($marker_width / 2);
$bg->compositeImage($marker, imagick::COMPOSITE_OVER, $x, $y);
}
return $bg;
}
示例3: imagick
// Создаем новый объект imagick
$im = new imagick($image);
if ($p[1] != 'gif') {
// Открываем watermark
$watermark = new imagick('./img/watermark.png');
// узнаем размеры оригинального изображения
$im_width = $im->getImageWidth();
$im_height = $im->getImageHeight();
// узнаем размеры водяного знака
$watermark_width = $watermark->getImageWidth();
$watermark_height = $watermark->getImageHeight();
// посчитать x и y
$left = $im_width - $watermark_width - 10;
$top = $im_height - $watermark_height - 10;
// накладываем watermark на оригинальное изображение
$im->compositeImage($watermark, imagick::COMPOSITE_OVER, $left, $top);
// сохраняем оригинал
$im->writeImage('./images/' . $image_name . '.' . $p[1]);
} else {
// сохраняем .gif с учетом анимации
$im->writeImages('./images/' . $image_name . '.' . $p[1], true);
}
// Копируем объект для различных типов
$large = $im->clone();
$square = $im->clone();
// Создаем квадратное изображение 160x160 px
$square->cropThumbnailImage(160, 160);
$square->writeImage('./images/' . $image_name . 's' . '.' . $p[1]);
// Создаем большое изображение с шириной 640 px и переменной высотой
$large->thumbnailImage(640, 0);
$large->writeImage('./images/' . $image_name . 'l' . '.' . $p[1]);
示例4: showImg
/**
* @param int $dw
* @param bool $pdfLogo
* @param int $pdfLogoSize
*/
public function showImg($dw = 500, $pdfLogo = false, $pdfLogoSize = 128)
{
$cachename = $this->fullpath . $dw . $this->pageid . ".png";
$cacheimg = $this->cachepath . '/' . $this->_nameFilter($cachename);
if (class_exists('Imagick')) {
try {
$im = $this->_dataCacher($cachename);
if ($im === false) {
$this->_logToFile('File not in cache');
$im = new imagick($this->fullpath . '[' . $this->pageid . ']');
//$im->setSize($dw*2,$dw*2);
$im->setImageFormat("png");
$im->adaptiveResizeImage($dw, $dw, true);
// add a border to the image
$color = new ImagickPixel();
$color->setColor("rgb(200,200,200)");
$im->borderImage($color, 1, 1);
// draw the PDF icon on top of the PDF preview
if ($pdfLogo) {
$pdflogo = new Imagick($this->assetsPath . $this->deficon);
$pdflogo->adaptiveResizeImage($pdfLogoSize, $pdfLogoSize);
$im->compositeImage($pdflogo, Imagick::COMPOSITE_DEFAULT, 1, 1);
}
$this->_dataCacher($cachename, $im);
$im->writeImage($cacheimg);
} else {
$this->_logToFile('File IS cached');
}
header("Content-Type: image/png");
header("Content-Disposition: attachment; filename=\"" . $cachename . ".png\";");
$this->getRawFile($cacheimg, false, 'PNG', true);
} catch (Exception $e) {
return parent::showImg($dw);
}
} else {
return parent::showImg($dw);
}
}