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); } }
function pdftoimage($file, $page) { $filepart = pathinfo($file); $save_to = $filepart['filename'] . ".jpg"; $im = new imagick($file[$page - 1]); $im->thumbnailImage(800, 0); $im->setImageFormat('jpg'); $im = $im->flattenImages(); file_put_contents($save_to, $im); }
function generate_certificate($user = null) { isset($user) or $user = $this->myUser; $elearning_user = elearning_user::get_instance($user->get_name(), elearning_mediathek::get_instance()->get_course()->get_id()); if ($elearning_user->has_exam_passed()) { //generating cert $cert = new elearning_certificate(); $filename_data = $cert->create_certificate($_SESSION["LMS_USER"]->get_login(), $_SESSION["LMS_USER"]->get_forename() . " " . $_SESSION["LMS_USER"]->get_surname(), $elearning_user->get_exam_sum_score(), $elearning_user->get_exam_sum_points(), date("d.m.Y")); //save cert to server $elearning_user->get_exam_cert()->set_content($filename_data); //save pdf to temp $login = $_SESSION["LMS_USER"]->get_login(); $myFile = PATH_TEMP . "zertifikat_{$login}.pdf"; $fh = fopen($myFile, 'w') or die("can't open file"); fwrite($fh, $filename_data); fclose($fh); //chmod($myFile, 0777); //create Thumb //$command = "/opt/local/bin/convert $filename -geometry 550 -quality 80 jpg:$filename.jpg"; putenv("MAGICK_TMPDIR=" . PATH_TEMP); $im = new imagick($myFile . '[0]'); /* Convert to jpg */ $im->setImageFormat("jpg"); /* Thumbnail the image */ $im->thumbnailImage(150, null); //save Thumb $elearning_user->get_exam_cert_preview()->set_content((string) $im); // delete file unlink($myFile); } }
function _resizeImagick(&$model, $field, $path, $size, $geometry, $thumbnailPath) { $srcFile = $path . $model->data[$model->alias][$field]; $pathInfo = $this->_pathinfo($srcFile); $thumbnailType = $this->settings[$model->alias][$field]['thumbnailType']; $isMedia = $this->_isMedia($model, $this->runtime[$model->alias][$field]['type']); $image = new imagick(); if ($isMedia) { $image->setResolution(300, 300); $srcFile = $srcFile . '[0]'; } $image->readImage($srcFile); $height = $image->getImageHeight(); $width = $image->getImageWidth(); if (preg_match('/^\\[[\\d]+x[\\d]+\\]$/', $geometry)) { // resize with banding list($destW, $destH) = explode('x', substr($geometry, 1, strlen($geometry) - 2)); $image->thumbnailImage($destW, $destH); } elseif (preg_match('/^[\\d]+x[\\d]+$/', $geometry)) { // cropped resize (best fit) list($destW, $destH) = explode('x', $geometry); $image->cropThumbnailImage($destW, $destH); } elseif (preg_match('/^[\\d]+w$/', $geometry)) { // calculate heigh according to aspect ratio $image->thumbnailImage((int) $geometry - 1, 0); } elseif (preg_match('/^[\\d]+h$/', $geometry)) { // calculate width according to aspect ratio $image->thumbnailImage(0, (int) $geometry - 1); } elseif (preg_match('/^[\\d]+l$/', $geometry)) { // calculate shortest side according to aspect ratio $destW = 0; $destH = 0; $destW = $width > $height ? (int) $geometry - 1 : 0; $destH = $width > $height ? 0 : (int) $geometry - 1; $imagickVersion = phpversion('imagick'); $image->thumbnailImage($destW, $destH, !($imagickVersion[0] == 3)); } if ($isMedia) { $thumbnailType = $this->settings[$model->alias][$field]['mediaThumbnailType']; } if (!$thumbnailType || !is_string($thumbnailType)) { try { $thumbnailType = $image->getImageFormat(); } catch (Exception $e) { $thumbnailType = 'png'; } } $fileName = str_replace(array('{size}', '{filename}'), array($size, $pathInfo['filename']), $this->settings[$model->alias][$field]['thumbnailName']); $destFile = "{$thumbnailPath}{$fileName}.{$thumbnailType}"; $image->setImageCompressionQuality($this->settings[$model->alias][$field]['thumbnailQuality']); $image->setImageFormat($thumbnailType); if (!$image->writeImage($destFile)) { return false; } $image->clear(); $image->destroy(); return true; }
public function _resizeImagick(Model $model, $field, $path, $size, $geometry, $thumbnailPath) { $srcFile = $path . $model->data[$model->alias][$field]; $pathInfo = $this->_pathinfo($srcFile); $thumbnailType = $imageFormat = $this->settings[$model->alias][$field]['thumbnailType']; $isMedia = $this->_isMedia($model, $this->runtime[$model->alias][$field]['type']); $image = new imagick(); if ($isMedia) { $image->setResolution(300, 300); $srcFile = $srcFile . '[0]'; } $image->readImage($srcFile); $height = $image->getImageHeight(); $width = $image->getImageWidth(); if (preg_match('/^\\[[\\d]+x[\\d]+\\]$/', $geometry)) { // resize with banding list($destW, $destH) = explode('x', substr($geometry, 1, strlen($geometry) - 2)); $image->thumbnailImage($destW, $destH, true); $imageGeometry = $image->getImageGeometry(); $x = ($imageGeometry['width'] - $destW) / 2; $y = ($imageGeometry['height'] - $destH) / 2; $image->setGravity(Imagick::GRAVITY_CENTER); $image->extentImage($destW, $destH, $x, $y); } elseif (preg_match('/^[\\d]+x[\\d]+$/', $geometry)) { // cropped resize (best fit) list($destW, $destH) = explode('x', $geometry); $image->cropThumbnailImage($destW, $destH); } elseif (preg_match('/^[\\d]+w$/', $geometry)) { // calculate heigh according to aspect ratio $image->thumbnailImage((int) $geometry - 1, 0); } elseif (preg_match('/^[\\d]+h$/', $geometry)) { // calculate width according to aspect ratio $image->thumbnailImage(0, (int) $geometry - 1); } elseif (preg_match('/^[\\d]+l$/', $geometry)) { // calculate shortest side according to aspect ratio $destW = 0; $destH = 0; $destW = $width > $height ? (int) $geometry - 1 : 0; $destH = $width > $height ? 0 : (int) $geometry - 1; $imagickVersion = phpversion('imagick'); $image->thumbnailImage($destW, $destH, !($imagickVersion[0] == 3)); } if ($isMedia) { $thumbnailType = $imageFormat = $this->settings[$model->alias][$field]['mediaThumbnailType']; } if (!$thumbnailType || !is_string($thumbnailType)) { try { $thumbnailType = $imageFormat = $image->getImageFormat(); // Fix file casing while (true) { $ext = false; $pieces = explode('.', $srcFile); if (count($pieces) > 1) { $ext = end($pieces); } if (!$ext || !strlen($ext)) { break; } $low = array('ext' => strtolower($ext), 'thumbnailType' => strtolower($thumbnailType)); if ($low['ext'] == 'jpg' && $low['thumbnailType'] == 'jpeg') { $thumbnailType = $ext; break; } if ($low['ext'] == $low['thumbnailType']) { $thumbnailType = $ext; } break; } } catch (Exception $e) { $this->log($e->getMessage(), 'upload'); $thumbnailType = $imageFormat = 'png'; } } $fileName = str_replace(array('{size}', '{filename}', '{primaryKey}'), array($size, $pathInfo['filename'], $model->id), $this->settings[$model->alias][$field]['thumbnailName']); $destFile = "{$thumbnailPath}{$fileName}.{$thumbnailType}"; $image->setImageCompressionQuality($this->settings[$model->alias][$field]['thumbnailQuality']); $image->setImageFormat($imageFormat); if (!$image->writeImage($destFile)) { return false; } $image->clear(); $image->destroy(); return true; }
} $id = $_REQUEST['record']; $document = new Document(); $document->retrieve($id); $filename = $document->document_revision_id; $filepath = "upload/{$filename}"; $document_name = $document->get_document_name($id); // File típusának ellenőrzése $image_formats = array('JPEG', 'GIF', 'PNG'); $finfo = new finfo(); $fileinfo = $finfo->file($filepath); $fileinfo_array = explode(" ", $fileinfo); if ($fileinfo_array[0] == 'PDF') { $im = new imagick($filepath . "[0]"); $im->setImageFormat('png'); $im->thumbnailImage(300, 0); header('Content-Type:image/png'); ob_clean(); flush(); echo $im; } elseif (!in_array($fileinfo_array[0], $image_formats)) { header('Content-Type:image/png'); ob_clean(); flush(); readfile('custom/themes/default/images/unknown.png'); } else { //Kép Átméretezése $image_attrs = getimagesize("upload/{$filename}"); $layout = ""; if ($image_attrs[0] > $image_attrs[1]) { $twidth = 300;