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; }
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; }
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; }
private function resize_imagick($src, $width, $height, $quality) { try { $img = new imagick($src); if (strtoupper($img->getImageFormat()) === 'JPEG') { $img->setImageCompression(imagick::COMPRESSION_JPEG); $img->setCompressionQuality($quality); } $img->resizeImage($width, $height, Imagick::FILTER_LANCZOS, true); $result = $img->writeImage($src); $img->clear(); $img->destroy(); return $result ? true : false; } catch (Exception $e) { return false; } }
private function resizeCropImg($pFolder, $pImg, $pW, $pH) { $im = new imagick(); $im->readImage($pFolder . $pImg); $image = new stdClass(); $image->dimensions = $im->getImageGeometry(); $image->w = $image->dimensions['width']; $image->h = $image->dimensions['height']; $image->ratio = $image->w / $image->h; if ($image->w / $pW < $image->h / $pH) { $h = ceil($pH * $image->w / $pW); $y = ($image->h - $pH * $image->w / $pW) / 2; $im->cropImage($image->w, $h, 0, $y); } else { $w = ceil($pW * $image->h / $pH); $x = ($image->w - $pW * $image->h / $pH) / 2; $im->cropImage($w, $image->h, $x, 0); } $im->ThumbnailImage($pW, $pH, true); if ($img->type === "PNG") { $im->setImageCompressionQuality(55); $im->setImageFormat('png'); } elseif ($img->type === "JPG" || $img->type === "JPEG") { $im->setCompressionQuality(100); $im->setImageFormat("jpg"); } $im->writeImage($this->ad->url->folder . '/assets/' . $pImg); $im->destroy(); }
if (PHP_OS == 'Linux') { //Linux平台 $wbshell1 = "xvfb-run --server-args=\"-screen 0, 1024x768x24\" cutycapt --min-width=460 --url=" . $site_url . " --out=" . $img_name; $wbshell2 = "xvfb-run --server-args=\"-screen 0, 1024x768x24\" cutycapt --min-width=1024 --url=" . $site_url . " --out=" . $img_name; } } //根据生成图片的大小调用语句 $wbshell = $picsize == 1 ? $wbshell1 : $wbshell2; //执行截图语句 system($wbshell); //exec($wbshell); //注:下面的操作仅是对图片进一步进行调整,可以缩小图片体积等,并方便更多的处理,并非必须。 $im = new imagick($img_name); //if($picsize==1) $im->resizeImage(490,0,Imagick::FILTER_LANCZOS,1); $im->setImageFormat("png"); $im->setCompressionQuality(90); $img_name2 = 'html2png/' . time() . '.png'; $im->writeImage($img_name2); $im->clear(); $im->destroy(); //输出图片连接 $url_this = dirname('http://' . $_SERVER['SERVER_NAME'] . $_SERVER["REQUEST_URI"]) . '/' . $img_name2; } else { $url_this = dirname('http://' . $_SERVER['SERVER_NAME'] . $_SERVER["REQUEST_URI"]) . '/google.png'; } ?> <div class="wrapper" > <h1>内容生成工具</h1> <ul> <li><?php echo $errinfo;
/** * 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; }