function cdm_thumbPdf($pdf) { if (class_exists('imagick')) { $upload_dir = wp_upload_dir(); $tmp_folder = $upload_dir['basedir'] . '/imageMagick_tmp/'; if (!is_dir($tmp_folder)) { mkdir($tmp_folder, 0777); } $tmp = $tmp_folder; $format = "png"; $source = $pdf; $dest = "" . $pdf . "_big.{$format}"; $dest2 = "" . $pdf . "_small.{$format}"; // read page 1 $im = new imagick('' . $source . '[0]'); // convert to jpg $im->setImageColorspace(255); $im->setImageFormat($format); //resize $im->resizeImage(650, 650, imagick::FILTER_LANCZOS, 1); //write image on server $im->writeImage($dest); //resize $im->resizeImage(250, 250, imagick::FILTER_LANCZOS, 1); //write image on server $im->writeImage($dest2); $im->clear(); $im->destroy(); } else { echo 'php-image-magick not installed. Please disable the pdf thumbnail options or install the php extention correctly.'; exit; } }
public function processPdf($fileNames) { $mpdf = Yii::app()->ePdf->mpdf(); $mpdf->SetImportUse(); $pagecount = $mpdf->SetSourceFile('../' . $fileNames['pdf']); if ($pagecount > 3) { for ($i = 1; $i <= 3; $i++) { if ($i != 1) { $mpdf->AddPage(); } $import_page = $mpdf->ImportPage($i); // add last 3 page $mpdf->UseTemplate($import_page); } } else { $tplId = $mpdf->ImportPage($pagecount); $mpdf->UseTemplate($tplId); } $mpdf->Output('../' . Extensions::FILE_PDF_PREVIEW_PATH . $fileNames['pdfPreview'], 'F'); $im = new imagick(); $im->readimage('/home/notesgen/public_html/' . Extensions::FILE_PDF_PREVIEW_PATH . $fileNames['pdfPreview']); $im->setImageCompressionQuality(0); $im->setImageFormat('jpeg'); $im->writeImage('../' . Extensions::FILE_IMAGE_PATH . $fileNames['image']); $im->setImageCompressionQuality(80); $im->writeImage('../' . Extensions::FILE_IMAGE_PATH_APP . $fileNames['image']); $im->clear(); $im->destroy(); }
function pdf2png($PDF,$Path){ if(!extension_loaded('imagick')){ echo 'no imagick'; return false; } if(!file_exists($PDF)){ echo 'no file'; return false; } $IM = new imagick(); echo 'image create'; // $IM->setResolution(794,1123); // echo 'image resolution'; $IM->setCompressionQuality(100); echo 'image quality'; $IM->readImage($PDF); echo 'pdf read'; foreach ($IM as $Key => $Var){ echo 'image convert'; $Var->setImageFormat('png'); $Filename = $Path.'/'.md5($Key.time()).'.png'; if($Var->writeImage($Filename) == true){ $Return[] = $Filename; } } return $Return; }
/** * {@inheritDoc} */ public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { $this->initCmd(); if (is_null($this->cmd)) { return false; } $absPath = $fileview->toTmpFile($path); $tmpDir = \OC::$server->getTempManager()->getTempBaseDir(); $defaultParameters = ' -env:UserInstallation=file://' . escapeshellarg($tmpDir . '/owncloud-' . \OC_Util::getInstanceId() . '/') . ' --headless --nologo --nofirststartwizard --invisible --norestore --convert-to pdf --outdir '; $clParameters = \OCP\Config::getSystemValue('preview_office_cl_parameters', $defaultParameters); $exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath); shell_exec($exec); //create imagick object from pdf $pdfPreview = null; try { list($dirname, , , $filename) = array_values(pathinfo($absPath)); $pdfPreview = $dirname . '/' . $filename . '.pdf'; $pdf = new \imagick($pdfPreview . '[0]'); $pdf->setImageFormat('jpg'); } catch (\Exception $e) { unlink($absPath); unlink($pdfPreview); \OCP\Util::writeLog('core', $e->getmessage(), \OCP\Util::ERROR); return false; } $image = new \OC_Image(); $image->loadFromData($pdf); unlink($absPath); unlink($pdfPreview); if ($image->valid()) { $image->scaleDownToFit($maxX, $maxY); return $image; } return false; }
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); } }
public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { $this->initCmd(); if (is_null($this->cmd)) { return false; } $absPath = $fileview->toTmpFile($path); $tmpDir = get_temp_dir(); $defaultParameters = ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir '; $clParameters = \OCP\Config::getSystemValue('preview_office_cl_parameters', $defaultParameters); $exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath); $export = 'export HOME=/' . $tmpDir; shell_exec($export . "\n" . $exec); //create imagick object from pdf try { $pdf = new \imagick($absPath . '.pdf' . '[0]'); $pdf->setImageFormat('jpg'); } catch (\Exception $e) { unlink($absPath); unlink($absPath . '.pdf'); \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); return false; } $image = new \OC_Image(); $image->loadFromData($pdf); unlink($absPath); unlink($absPath . '.pdf'); return $image->valid() ? $image : false; }
function thumbnail($file, $width = '120') { $name = $this->_dir . DS . $file . '[0]'; $im = new imagick($name); $im->setImageFormat('jpg'); $im->scaleImage($width, 0); header('Content-Type: image/jpeg'); echo $im; }
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); }
/** * Returns image binary content * @return type */ public function getImageContent() { if ($this->iMagick) { return $this->iMagick->getimageblob(); } else { return $this->content; } }
private function createThumb($filePath, $fileName) { if (!extension_loaded('imagick')) { $errorMessage = "Error: 874"; $this->error($errorMessage); } try { $fileNameWithoutExt = $fileName; $imagePreview = new imagick($this->uploadsDir . $fileName); $imagePreview->scaleImage(300, 0); $imagePreview->writeImage($this->thumbDir . $fileNameWithoutExt); } catch (ImagickException $e) { $errorMessage = "Error: 3435"; $this->error($errorMessage); } return $fileNameWithoutExt; }
public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { $tmpPath = $fileview->toTmpFile($path); //create imagick object from pdf try { $pdf = new \imagick($tmpPath . '[0]'); $pdf->setImageFormat('jpg'); } catch (\Exception $e) { \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR); return false; } unlink($tmpPath); //new image object $image = new \OC_Image($pdf); //check if image object is valid return $image->valid() ? $image : false; }
/** * class_make_file::create_img_frompdf() * * @param mixed $pdf_org * @param mixed $pfadhier * @return */ private function create_img_frompdf($pdf_org, $pfadhier) { setlocale(LC_ALL, "de_DE"); //Klasse INI $im = new imagick(); //Auflösung $im->setResolution(60, 60); //Anzahl der Seiten des PDFs $pages = $this->getNumPagesInPDF($pfadhier . $pdf_org); //Dann alle Seiten durchlaufen und Bilder erzeugen for ($i = 0; $i < $pages; $i++) { //Maximal 100 Seiten if ($i > 100) { continue; } //Seitenzahl festlegen $pdf = $pfadhier . $pdf_org . "[" . $i . "]"; //auslesen if (file_exists($pfadhier . $pdf_org)) { try { $im->readImage($pdf); } catch (Exception $e) { echo 'Exception abgefangen: ', $e->getMessage(), "\n"; } if (empty($e)) { //die ("NIX"); $im->setImageColorspace(255); $im->setCompression(Imagick::COMPRESSION_JPEG); $im->setCompressionQuality(60); $im->setImageFormat('jpg'); $im->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH); //Damti testweise ausgeben #header( "Content-Type: image/png" ); #echo $im; #exit(); $pdf_img = str_replace(".pdf", "", $pdf_org); $pdf_img = str_replace("/files/pdf/", "", $pdf_img); $im->setImageFileName($pfadhier . "files/images/thumbs/" . $pdf_img . "_" . $i . ".jpg"); //Pfade saven echo $image_files[] = $pfadhier . "files/images/thumbs/" . $pdf_img . "_" . $i . ".jpg"; //Speichern $im->writeImage(); ini_set(Display_errors, "1"); } //Noch verkleinern... image_magick macht die Bilder zu groß /** $image = new SimpleImage(); $image->load($pfadhier."files/images/thumbs/".$pdf_img."_".$i.".jpg"); $image->resizeToHeight(300); $image->save($pfadhier."files/images/thumbs/".$pdf_img."_".$i."x.jpg"); unlink($pfadhier."files/images/thumbs/".$pdf_img."_".$i.".jpg"); echo ($pfadhier."files/images/thumbs/".$pdf_img."_".$i."x.jpg"); */ } } return $image_files; }
public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { require_once 'PHPExcel/Classes/PHPExcel.php'; require_once 'PHPExcel/Classes/PHPExcel/IOFactory.php'; $absPath = $fileview->toTmpFile($path); $tmpPath = \OC_Helper::tmpFile(); $rendererName = \PHPExcel_Settings::PDF_RENDERER_DOMPDF; $rendererLibraryPath = \OC::$THIRDPARTYROOT . '/3rdparty/dompdf'; \PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath); $phpexcel = new \PHPExcel($absPath); $excel = \PHPExcel_IOFactory::createWriter($phpexcel, 'PDF'); $excel->save($tmpPath); $pdf = new \imagick($tmpPath . '[0]'); $pdf->setImageFormat('jpg'); unlink($absPath); unlink($tmpPath); $image = new \OC_Image(); $image->loadFromData($pdf); return $image->valid() ? $image : false; }
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; }
function pigen_generate($file) { // Generate thumbnail from PDF $file_basename = str_replace('.', '-', basename($file)); $file_url = str_replace(basename($file), $file_basename . '.jpg', $file); $opt = get_option('_pigen_verify_imagick'); if ($opt == 'imagick') { $im = new imagick(); $im->readimage($file . '[0]'); $im->setImageBackgroundColor('white'); $im = $im->flattenImages(); $im->setImageFormat('jpg'); $im->writeImage($file_url); $im->clear(); $im->destroy(); } else { exec("convert {$file}[0] -density 72 -quality 90 -background white -flatten {$file_url}"); // converte files to jpg } return $file_url; }
function pdftojpg($pdfFile, $jpgFile) { /* * imagemagick and php5-imagick required * * all options for imagick: * http://php.net/manual/fr/class.imagick.php * */ $pdf_file = $pdfFile; $save_to = $jpgFile; $img = new imagick(); //this must be called before reading the image, otherwise has no effect - "-density {$x_resolution}x{$y_resolution}" //this is important to give good quality output, otherwise text might be unclear $img->setResolution(200, 200); //read the pdf $img->readImage("{$pdf_file}[0]"); //reduce the dimensions - scaling will lead to black color in transparent regions $img->scaleImage(1920, 1080); //set new format $img->setCompressionQuality(80); $img->setImageFormat('jpg'); // -flatten option, this is necessary for images with transparency, it will produce white background for transparent regions $img = $img->flattenImages(); //save image file $img->writeImages($save_to, false); //clean $img->clear(); $img->destroy(); }
public function generatePreviewImage($pdfFile, $saveTo) { try { $img = new imagick(Director::getAbsFile($pdfFile) . "[0]"); //we only take first page // -flatten option, this is necessary for images with transparency, it will produce white background for transparent regions $img->setImageAlphaChannel(11); //Imagick::ALPHACHANNEL_REMOVE has been added in 3.2.0b2 $img->mergeImageLayers(imagick::LAYERMETHOD_FLATTEN); //set new format //@Todo detect format from filename $img->setImageFormat('jpg'); $img->setCompressionQuality(100); //save image file $img->writeImages($saveTo, false); } catch (\Exception $e) { error_log($e->getMessage()); return false; } return true; }
/** * Rotate image * * @param string $path image file * @param int $degree rotete degrees * @param string $bgcolor square background color in #rrggbb format * @param string $destformat image destination format * @return string|false * @author nao-pon * @author Troex Nevelin **/ protected function imgRotate($path, $degree, $bgcolor = '#ffffff', $destformat = null) { if (($s = @getimagesize($path)) == false) { return false; } $result = false; switch ($this->imgLib) { case 'imagick': try { $img = new imagick($path); } catch (Exception $e) { return false; } $img->rotateImage(new ImagickPixel($bgcolor), $degree); $result = $img->writeImage($path); return $result ? $path : false; break; case 'gd': if ($s['mime'] == 'image/jpeg') { $img = imagecreatefromjpeg($path); } elseif ($s['mime'] == 'image/png') { $img = imagecreatefrompng($path); } elseif ($s['mime'] == 'image/gif') { $img = imagecreatefromgif($path); } elseif ($s['mime'] == 'image/xbm') { $img = imagecreatefromxbm($path); } $degree = 360 - $degree; list($r, $g, $b) = sscanf($bgcolor, "#%02x%02x%02x"); $bgcolor = imagecolorallocate($img, $r, $g, $b); $tmp = imageRotate($img, $degree, (int) $bgcolor); if ($destformat == 'jpg' || $destformat == null && $s['mime'] == 'image/jpeg') { $result = imagejpeg($tmp, $path, 100); } else { if ($destformat == 'gif' || $destformat == null && $s['mime'] == 'image/gif') { $result = imagegif($tmp, $path, 7); } else { $result = imagepng($tmp, $path, 7); } } imageDestroy($img); imageDestroy($tmp); return $result ? $path : false; break; } return false; }
if (preg_match('{image/(.*)}is', $size['mime'], $p)) { // генерируем имя для изображения $letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; $image_name = ''; for ($i = 0; $i < 5; $i++) { $image_name .= $letters[mt_rand(0, 61)]; } // не нравится мне расширение jpeg, пусть будет jpg if ($p[1] == 'jpeg') { $p[1] = 'jpg'; } // полное имя файла изображения $image = './images/' . $image_name . '.' . $p[1]; move_uploaded_file($tmp_image_name, $image); // Создаем новый объект 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); // сохраняем оригинал
/** * Rotate image * * @param string $path image file * @param int $degree rotete degrees * @param string $bgcolor square background color in #rrggbb format * @param string $destformat image destination format * @return string|false * @author nao-pon * @author Troex Nevelin **/ protected function imgRotate($path, $degree, $bgcolor = '#ffffff', $destformat = null) { if (($s = @getimagesize($path)) == false || $degree % 360 === 0) { return false; } $result = false; // try lossless rotate if ($degree % 90 === 0 && in_array($s[2], array(IMAGETYPE_JPEG, IMAGETYPE_JPEG2000))) { $count = $degree / 90 % 4; $exiftran = array(1 => '-9', 2 => '-1', 3 => '-2'); $jpegtran = array(1 => '90', 2 => '180', 3 => '270'); $quotedPath = escapeshellarg($path); $cmds = array('exiftran -i ' . $exiftran[$count] . ' ' . $path, 'jpegtran -rotate ' . $jpegtran[$count] . ' -copy all -outfile ' . $quotedPath . ' ' . $quotedPath); foreach ($cmds as $cmd) { if ($this->procExec($cmd) === 0) { $result = true; break; } } if ($result) { return $path; } } switch ($this->imgLib) { case 'imagick': try { $img = new imagick($path); } catch (Exception $e) { return false; } if ($img->getNumberImages() > 1) { $img = $img->coalesceImages(); do { $img->rotateImage(new ImagickPixel($bgcolor), $degree); } while ($img->nextImage()); $img = $img->optimizeImageLayers(); $result = $img->writeImages($path, true); } else { $img->rotateImage(new ImagickPixel($bgcolor), $degree); $result = $img->writeImage($path); } $img->destroy(); return $result ? $path : false; break; case 'gd': $img = self::gdImageCreate($path, $s['mime']); $degree = 360 - $degree; list($r, $g, $b) = sscanf($bgcolor, "#%02x%02x%02x"); $bgcolor = imagecolorallocate($img, $r, $g, $b); $tmp = imageRotate($img, $degree, (int) $bgcolor); $result = self::gdImage($tmp, $path, $destformat, $s['mime']); imageDestroy($img); imageDestroy($tmp); return $result ? $path : false; break; } return false; }
protected function createTmb($vd6fe1d0be6347b8ef2427fa629c04485) { $vd02a169f33469c888396a24dd9d9f1c6 = $this->mimetype($vd6fe1d0be6347b8ef2427fa629c04485); if (!$this->canCreateTmb($vd6fe1d0be6347b8ef2427fa629c04485, $vd02a169f33469c888396a24dd9d9f1c6)) { return false; } $vb068931cc450442b63f5b3d276ea4297 = $this->tmbName($vd6fe1d0be6347b8ef2427fa629c04485); $va8b687c2e93191d90a6d7b8982ceec4a = $this->tmbPath . DIRECTORY_SEPARATOR . $vb068931cc450442b63f5b3d276ea4297; if (($v25d902c24283ab8cfbac54dfa101ad31 = $this->_fopen($vd6fe1d0be6347b8ef2427fa629c04485, 'rb')) == false || ($v90710761341352a9e144d8ad4c92598b = @fopen($va8b687c2e93191d90a6d7b8982ceec4a, 'wb')) == false) { return false; } while (!feof($v25d902c24283ab8cfbac54dfa101ad31)) { fwrite($v90710761341352a9e144d8ad4c92598b, fread($v25d902c24283ab8cfbac54dfa101ad31, 8192)); } $this->_fclose($v25d902c24283ab8cfbac54dfa101ad31, $vd6fe1d0be6347b8ef2427fa629c04485); fclose($v90710761341352a9e144d8ad4c92598b); if (($v03c7c0ace395d80182db07ae2c30f034 = @getimagesize($va8b687c2e93191d90a6d7b8982ceec4a)) == false) { return false; } $result = false; $v88029fd68f54ae31758f44d7b965868f = $this->tmbSize; list($v9dd4e461268c8034f5c8564e155c67a6, $v415290769594460e2e485922904f345d, $v84b16781293d33e80d74ef9d63280bc0, $v55fc30b57cc1b80e8f68104931fbf716) = $this->tmbEffects($v03c7c0ace395d80182db07ae2c30f034[0], $v03c7c0ace395d80182db07ae2c30f034[1], $v88029fd68f54ae31758f44d7b965868f, $this->options['tmbCrop']); switch ($this->imgLib) { case 'imagick': try { $vb798abe6e1b1318ee36b0dcb3fb9e4d3 = new imagick($va8b687c2e93191d90a6d7b8982ceec4a); } catch (Exception $ve1671797c52e15f763380b45e841ec32) { return false; } $vb798abe6e1b1318ee36b0dcb3fb9e4d3->contrastImage(1); if ($this->options['tmbCrop'] == false) { $va8a63b4d63a08aed720d0f5f249e07d9 = new Imagick(); $va8a63b4d63a08aed720d0f5f249e07d9->newImage($v88029fd68f54ae31758f44d7b965868f, $v88029fd68f54ae31758f44d7b965868f, new ImagickPixel($this->options['tmbBgColor'])); $va8a63b4d63a08aed720d0f5f249e07d9->setImageFormat('png'); $vb798abe6e1b1318ee36b0dcb3fb9e4d3->resizeImage($v84b16781293d33e80d74ef9d63280bc0, $v55fc30b57cc1b80e8f68104931fbf716, NULL, true); $va8a63b4d63a08aed720d0f5f249e07d9->compositeImage($vb798abe6e1b1318ee36b0dcb3fb9e4d3, imagick::COMPOSITE_OVER, $v9dd4e461268c8034f5c8564e155c67a6, $v415290769594460e2e485922904f345d); $result = $va8a63b4d63a08aed720d0f5f249e07d9->writeImage($va8b687c2e93191d90a6d7b8982ceec4a); } else { $result = $vb798abe6e1b1318ee36b0dcb3fb9e4d3->cropThumbnailImage($v88029fd68f54ae31758f44d7b965868f, $v88029fd68f54ae31758f44d7b965868f) && $vb798abe6e1b1318ee36b0dcb3fb9e4d3->writeImage($va8b687c2e93191d90a6d7b8982ceec4a); } break; case 'gd': if ($v03c7c0ace395d80182db07ae2c30f034['mime'] == 'image/jpeg') { $vb798abe6e1b1318ee36b0dcb3fb9e4d3 = imagecreatefromjpeg($va8b687c2e93191d90a6d7b8982ceec4a); } elseif ($v03c7c0ace395d80182db07ae2c30f034['mime'] == 'image/png') { $vb798abe6e1b1318ee36b0dcb3fb9e4d3 = imagecreatefrompng($va8b687c2e93191d90a6d7b8982ceec4a); } elseif ($v03c7c0ace395d80182db07ae2c30f034['mime'] == 'image/gif') { $vb798abe6e1b1318ee36b0dcb3fb9e4d3 = imagecreatefromgif($va8b687c2e93191d90a6d7b8982ceec4a); } elseif ($v03c7c0ace395d80182db07ae2c30f034['mime'] == 'image/xbm') { $vb798abe6e1b1318ee36b0dcb3fb9e4d3 = imagecreatefromxbm($va8b687c2e93191d90a6d7b8982ceec4a); } if (isset($vb798abe6e1b1318ee36b0dcb3fb9e4d3) && $vb798abe6e1b1318ee36b0dcb3fb9e4d3 && false != ($vfa816edb83e95bf0c8da580bdfd491ef = imagecreatetruecolor($v88029fd68f54ae31758f44d7b965868f, $v88029fd68f54ae31758f44d7b965868f))) { if ($this->options['tmbCrop'] == false) { if ($this->options['tmbBgColor'] == 'transparent') { list($v4b43b0aee35624cd95b910189b3dc231, $vb2f5ff47436671b6e533d8dc3614845d, $v92eb5ffee6ae2fec3ad71c777531578f) = array(0, 0, 255); } else { list($v4b43b0aee35624cd95b910189b3dc231, $vb2f5ff47436671b6e533d8dc3614845d, $v92eb5ffee6ae2fec3ad71c777531578f) = sscanf($this->options['tmbBgColor'], "#%02x%02x%02x"); } $ve12224dadfacf7a79886df59f202a403 = imagecolorallocate($vfa816edb83e95bf0c8da580bdfd491ef, $v4b43b0aee35624cd95b910189b3dc231, $vb2f5ff47436671b6e533d8dc3614845d, $v92eb5ffee6ae2fec3ad71c777531578f); if ($this->options['tmbBgColor'] == 'transparent') { $ve12224dadfacf7a79886df59f202a403 = imagecolortransparent($vfa816edb83e95bf0c8da580bdfd491ef, $ve12224dadfacf7a79886df59f202a403); } imagefill($vfa816edb83e95bf0c8da580bdfd491ef, 0, 0, $ve12224dadfacf7a79886df59f202a403); if (!imagecopyresampled($vfa816edb83e95bf0c8da580bdfd491ef, $vb798abe6e1b1318ee36b0dcb3fb9e4d3, $v9dd4e461268c8034f5c8564e155c67a6, $v415290769594460e2e485922904f345d, 0, 0, $v84b16781293d33e80d74ef9d63280bc0, $v55fc30b57cc1b80e8f68104931fbf716, $v03c7c0ace395d80182db07ae2c30f034[0], $v03c7c0ace395d80182db07ae2c30f034[1])) { return false; } } else { if (!imagecopyresampled($vfa816edb83e95bf0c8da580bdfd491ef, $vb798abe6e1b1318ee36b0dcb3fb9e4d3, 0, 0, $v9dd4e461268c8034f5c8564e155c67a6, $v415290769594460e2e485922904f345d, $v88029fd68f54ae31758f44d7b965868f, $v88029fd68f54ae31758f44d7b965868f, $v84b16781293d33e80d74ef9d63280bc0, $v55fc30b57cc1b80e8f68104931fbf716)) { return false; } } $result = imagepng($vfa816edb83e95bf0c8da580bdfd491ef, $va8b687c2e93191d90a6d7b8982ceec4a, 7); imagedestroy($vb798abe6e1b1318ee36b0dcb3fb9e4d3); imagedestroy($vfa816edb83e95bf0c8da580bdfd491ef); } break; } return $result ? $vb068931cc450442b63f5b3d276ea4297 : false; }
/** * Resize image * * @param string $img image path * @param int $w image width * @param int $h image height * @return bool **/ protected function _resizeImg($img, $w, $h) { if (false == ($s = getimagesize($img))) { return false; } switch ($this->_options['imgLib']) { case 'imagick': if (false != ($_img = new imagick($img))) { return $_img->cropThumbnailImage($w, $h) && $_img->writeImage($img); } break; case 'mogrify': exec('mogrify -scale ' . $w . 'x' . $h . '! ' . escapeshellarg($img), $o, $c); return 0 == $c; break; case 'gd': if ($s['mime'] == 'image/jpeg') { $_img = imagecreatefromjpeg($img); } elseif ($s['mime'] = 'image/png') { $_img = imagecreatefrompng($img); } elseif ($s['mime'] = 'image/gif') { $_img = imagecreatefromgif($img); } if (!$_img || false == ($_out = imagecreatetruecolor($w, $h))) { return false; } if (!imagecopyresampled($_out, $_img, 0, 0, 0, 0, $w, $h, $s[0], $s[1])) { return false; } if ($s['mime'] == 'image/jpeg') { $r = imagejpeg($_out, $img, 100); } else { if ($s['mime'] = 'image/png') { $r = imagepng($_out, $img, 7); } else { $r = imagegif($_out, $img, 7); } } imagedestroy($_img); imagedestroy($_out); return $r; break; } }
/** * Rotate image * * @param string $path image file * @param int $degree rotete degrees * @param string $bgcolor square background color in #rrggbb format * @param string $destformat image destination format * @return string|false * @author nao-pon * @author Troex Nevelin **/ protected function imgRotate($path, $degree, $bgcolor = '#ffffff', $destformat = null) { if (($s = @getimagesize($path)) == false) { return false; } $result = false; switch ($this->imgLib) { case 'imagick': try { $img = new imagick($path); } catch (Exception $e) { return false; } $img->rotateImage(new ImagickPixel($bgcolor), $degree); $result = $img->writeImage($path); return $result ? $path : false; break; case 'gd': $img = self::gdImageCreate($path, $s['mime']); $degree = 360 - $degree; list($r, $g, $b) = sscanf($bgcolor, "#%02x%02x%02x"); $bgcolor = imagecolorallocate($img, $r, $g, $b); $tmp = imageRotate($img, $degree, (int) $bgcolor); $result = self::gdImage($tmp, $path, $destformat, $s['mime']); imageDestroy($img); imageDestroy($tmp); return $result ? $path : false; break; } return false; }
function pdf2png($PDF,$Path,$ImageName){ if(!extension_loaded('imagick')){ echo "<p>no imagick'</p>"; return false; } if(!file_exists($PDF)){ echo "<p>no file'</p>"; return false; } $IM = new imagick(); $IM->setOption('density','200'); $IM->setOption('antialias',''); $IM->setOption('sharpen','0x1.0'); //$IM->setResolution(794,1123); // echo 'image resolution'; $IM->setCompressionQuality(100); $IM->readImage($PDF); foreach ($IM as $Key => $Var){ $Var->paintTransparentImage($Var->getImageBackgroundColor(), 1, 10000); $Var->setImageFormat('png'); $Filename = $Path.'/'.$ImageName.'.png'; if($Var->writeImage($Filename) == true){ $Return[] = $Filename; } } return $Return; }
/** * Create thumnbnail and return it's URL on success * * @param string $path file path * @param string $mime file mime type * @return string|false * @author Dmitry (dio) Levashov **/ protected function createTmb($path) { $mime = $this->mimetype($path); if (!$this->canCreateTmb($path, $mime)) { return false; } $name = $this->tmbName($path); $tmb = $this->tmbPath . DIRECTORY_SEPARATOR . $name; // copy image in tmbPath so some drivers does not store files on local fs if (($src = $this->_fopen($path, 'rb')) == false || ($trg = @fopen($tmb, 'wb')) == false) { return false; } while (!feof($src)) { fwrite($trg, fread($src, 8192)); } $this->_fclose($src, $path); fclose($trg); if (($s = @getimagesize($tmb)) == false) { return false; } $result = false; $tmbSize = $this->tmbSize; list($x, $y, $size_w, $size_h) = $this->tmbEffects($s[0], $s[1], $tmbSize, $this->options['tmbCrop']); switch ($this->imgLib) { case 'imagick': try { $img = new imagick($tmb); } catch (Exception $e) { return false; } $img->contrastImage(1); if ($this->options['tmbCrop'] == false) { $img1 = new Imagick(); $img1->newImage($tmbSize, $tmbSize, new ImagickPixel($this->options['tmbBgColor'])); $img1->setImageFormat('png'); $img->resizeImage($size_w, $size_h, NULL, true); $img1->compositeImage($img, imagick::COMPOSITE_OVER, $x, $y); $result = $img1->writeImage($tmb); } else { $result = $img->cropThumbnailImage($tmbSize, $tmbSize) && $img->writeImage($tmb); } break; case 'gd': if ($s['mime'] == 'image/jpeg') { $img = imagecreatefromjpeg($tmb); } elseif ($s['mime'] == 'image/png') { $img = imagecreatefrompng($tmb); } elseif ($s['mime'] == 'image/gif') { $img = imagecreatefromgif($tmb); } elseif ($s['mime'] == 'image/xbm') { $img = imagecreatefromxbm($tmb); } if ($img && false != ($tmp = imagecreatetruecolor($tmbSize, $tmbSize))) { if ($this->options['tmbCrop'] == false) { if ($this->options['tmbBgColor'] == 'transparent') { list($r, $g, $b) = array(0, 0, 255); } else { list($r, $g, $b) = sscanf($this->options['tmbBgColor'], "#%02x%02x%02x"); } $bgcolor = imagecolorallocate($tmp, $r, $g, $b); if ($this->options['tmbBgColor'] == 'transparent') { $bgcolor = imagecolortransparent($tmp, $bgcolor); } imagefill($tmp, 0, 0, $bgcolor); if (!imagecopyresampled($tmp, $img, $x, $y, 0, 0, $size_w, $size_h, $s[0], $s[1])) { return false; } } else { if (!imagecopyresampled($tmp, $img, 0, 0, $x, $y, $tmbSize, $tmbSize, $size_w, $size_h)) { return false; } } $result = imagepng($tmp, $tmb, 7); imagedestroy($img); imagedestroy($tmp); } break; } return $result ? $name : false; }
<?php $case = "show_img"; //show_img, save_img $cropThumbnailImage = true; $filename = "img/" . $_GET["file"]; if (class_exists("imagick")) { $im = new imagick($filename); /* create the thumbnail */ if ($cropThumbnailImage) { $im->cropThumbnailImage(80, 80); } /* Write to a file */ if ($resizeImage) { $im->resizeImage(900, 80, 1, 0.5); } switch ($case) { case "write_img": $im->writeImage("img/" . $_GET["file"]); break; case "show_img": header("Content-Type: image/jpg"); echo $im->getImageBlob(); break; } } else { cropImage_common($filename, 80, 80); } function cropImage_common($filename, $width, $height) { // Content type
/** * @param $pdf * @param $id * @return string * @usage Generates thumbnail from PDF file. [ From v4.1.3 ] */ function wpdm_pdf_thumbnail($pdf, $id) { $pdfurl = ''; if (strpos($pdf, "://")) { $pdfurl = $pdf; $pdf = str_replace(home_url('/'), ABSPATH, $pdf); } if ($pdf == $pdfurl) { return; } if (file_exists($pdf)) { $source = $pdf; } else { $source = UPLOAD_DIR . $pdf; } $dest = WPDM_CACHE_DIR . "/pdfthumbs/{$id}.png"; $durl = WPDM_BASE_URL . "cache/pdfthumbs/{$id}.png"; $ext = explode(".", $source); $ext = end($ext); if ($ext != 'pdf') { return ''; } if (file_exists($dest)) { return $durl; } $source = $source . '[0]'; if (!class_exists('Imagick')) { return "Imagick is not installed properly"; } try { $image = new imagick($source); $image->setResolution(800, 800); $image->setImageFormat("png"); $image->writeImage($dest); } catch (Exception $e) { return ''; } return $durl; }
} } catch (ImagickException $e) { // something went wrong, handle the problem } @unlink($tmpfile); } } // Print the output foreach ($image_list as $img) { if ($img['thumb'] != '') { $url = $img['url']; $title = $img['title']; $thumb = $img['thumb']; $subreddit = $img['subreddit']; $permalink = "http://reddit.com/" . $img['permalink']; $img = new imagick($thumb); $height = $img->getImageHeight(); $img->clear(); $img->destroy(); $thumb = '/' . $thumb; $subreddit_text = ''; if ($bSubreddit) { $subreddit_text = '<a class="cat" href="http://redditporn.com/r/' . $subreddit . '" style="color: #3BB9FF">' . $subreddit . '</a><br/>'; } echo '<li id="mosaic1170" class="item_image" style="height: ' . ($height + 4) . 'px;"> <div class="img"> <a href="' . $url . '" target="_blank"><img src="' . $thumb . '" alt="' . $title . '" width="300" height="' . $height . '"/></a> </div> <div class="info"> ' . $subreddit_text . ' <a href="' . $permalink . '" target="_blank">' . $title . '</a>
if (!file_exists($mediadir)) { mkdir($mediadir, 0777, true); } $filename = $query_string['id'] . '.' . $query_string['hash'] . '.' . $query_string['ext']; $writeTo = $mediadir . $filename; if (!$width || !$height) { header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found', true, 404); exit; } if (!($size = getimagesize($fullPath))) { header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found', true, 404); exit; } list($currentWidth, $currentHeight, $currentType) = $size; if (class_exists('imagick')) { $new_image_obj = new imagick($fullPath); $new_image = $new_image_obj->clone(); $new_image->setImageColorspace(Imagick::COLORSPACE_RGB); $new_image->flattenImages(); if ($is_beyond_original && ($width > $currentWidth || $height > $currentHeight)) { $width = $currentWidth; $height = $currentHeight; } if (!$aspect) { $new_image->cropThumbnailImage($width, $height); } else { $new_image->scaleImage($width, $height, false); } $new_image->writeImage($writeTo); } else { $target['width'] = $currentWidth;
public static function resize($orig_file_path, $settings, $target_file_path) { $quality = 95; $crop = $settings['crop_method']; $current_width = $settings['width']; $current_height = $settings['height']; $target_width = min($current_width, $settings['width_requested']); $target_height = min($current_height, $settings['height_requested']); if ($crop) { $x_ratio = $target_width / $current_width; $y_ratio = $target_height / $current_height; $ratio = min($x_ratio, $y_ratio); $use_x_ratio = $x_ratio == $ratio; $new_width = $use_x_ratio ? $target_width : floor($current_width * $ratio); $new_height = !$use_x_ratio ? $target_height : floor($current_height * $ratio); } else { $new_width = $target_width; $new_height = $target_height; } $im = new imagick($orig_file_path); $im->cropThumbnailImage($new_width, $new_height); $im->setImageCompression(imagick::COMPRESSION_JPEG); $im->setImageCompressionQuality($quality); $im->stripImage(); $result = $im->writeImage($target_file_path); $im->destroy(); return array($new_width, $new_height, $target_width, $target_height); }