PHP pdf轉化為圖片(PNG)
/**
* 將pdf檔案轉化為多張png圖片
* @param string $pdf pdf所在路徑 (/www/pdf/abc.pdf pdf所在的絕對路徑)
* @param string $path 新生成圖片所在路徑 (/www/pngs/)
*
* @return array|bool
*/
function pdf2png($pdf, $path)
{
if (!extension_loaded('imagick')) {
return false;
}
if (!file_exists($pdf)) {
return false;
}
$im = new Imagick();
$im->setResolution(120, 120); //設定解析度 值越大解析度越高
$im->setCompressionQuality(100);
$im->readImage($pdf);
foreach ($im as $k => $v) {
$v->setImageFormat('png');
$fileName = $path . md5($k . time()) . '.png';
if ($v->writeImage($fileName) == true) {
$return[] = $fileName;
}
}
return $return;
}
/**
* 將pdf轉化為單一png圖片
* @param string $pdf pdf所在路徑 (/www/pdf/abc.pdf pdf所在的絕對路徑)
* @param string $path 新生成圖片所在路徑 (/www/pngs/)
*
* @throws Exception
*/
function pdf2png2($pdf, $path)
{
try {
$im = new Imagick();
$im->setCompressionQuality(100);
$im->setResolution(120, 120);//設定解析度 值越大解析度越高
$im->readImage($pdf);
$canvas = new Imagick();
$imgNum = $im->getNumberImages();
//$canvas->setResolution(120, 120);
foreach ($im as $k => $sub) {
$sub->setImageFormat('png');
//$sub->setResolution(120, 120);
$sub->stripImage();
$sub->trimImage(0);
$width = $sub->getImageWidth() + 10;
$height = $sub->getImageHeight() + 10;
if ($k + 1 == $imgNum) {
$height += 10;
} //最後新增10的height
$canvas->newImage($width, $height, new ImagickPixel('white'));
$canvas->compositeImage($sub, Imagick::COMPOSITE_DEFAULT, 5, 5);
}
$canvas->resetIterator();
$canvas->appendImages(true)->writeImage($path . microtime(true) . '.png');
} catch (Exception $e) {
throw $e;
}
}
PS: 無論是轉化為多張還是單張圖片,都需要安裝PHP的Imagick擴充套件。
其實,這兩個方法還可以再優化,比如可以自定義設定圖片的解析度,存放圖片的地址不存在的時候,可以自動建立目錄之類的。這些問題和轉化圖片,就不多寫了。
相關文章
- aspose word轉換pdf檔案後將pdf檔案轉換為圖片png
- php實現pdf轉圖片PHP
- 如何從將xcode工程中圖片pdf轉成png?XCode
- Windows 系統,PHP實現PPT轉PDF,PDF轉圖片的操作WindowsPHP
- 圖片怎麼轉換成PDF,圖片轉PDF教程
- Python 將Word轉換為JPG、PNG、SVG圖片PythonSVG
- 分割pdf為圖片
- Java 將PDF轉為透明背景的圖片Java
- C#實現 word、pdf、ppt 轉為圖片C#
- Java實現emf轉jpg png 圖片轉換Java
- 圖片格式轉換,JPG圖片轉換成PDF
- python批量ppt轉圖片,pdf轉圖片,word轉圖片指令碼Python指令碼
- domtoimage -- html轉化為圖片HTML
- Photoshop將png轉為ico圖示
- Java pdf轉高清圖片Java
- PNG圖片原理二三事
- 【學習圖片】06:PNG
- PNG圖片格式詳解
- 直播app系統原始碼,python pdf轉為圖片APP原始碼Python
- win10怎麼將pdf另存為圖片_win10如何把pdf另存為圖片Win10
- PDF 轉換圖片然後識別圖片內容
- php圖片上傳之圖片轉換PHP
- 用PHP處理png圖片白色背景色改為透明色的例項程式碼PHP
- JPG轉PDF如何實現?圖片批次轉換PDF的快捷方法
- C++讀取一個png圖片資訊-[lenna.png]C++
- png圖片怎麼轉換成jpg 電腦上怎麼把png格式改成jpg
- 怎麼把Excel 表格轉成PNG、JPEG、GIF圖片格式 ?Excel
- GD 庫 PNG 透明底圖片新增文字及圖片水印
- java 電子印章 png 透明圖片Java
- activiti 生成當前任務圖片PNG
- Java 轉PPT為圖片、PDF、SVG、XPS、ODP以及PPT和PPTX互轉JavaSVG
- C# 將PDF轉為線性化PDFC#
- php實現圖片旋轉PHP
- win10怎麼png轉jpg格式 win10系統png怎麼轉換成jpg圖片Win10
- php gd庫擴充套件生成帶中文字型的png圖片PHP套件
- 使用Python實現批次PPT轉圖片,格式支援PNG、JPG,轉後圖片後批次重新命名Python
- Vue專案pdf(base64)轉圖片Vue
- html頁面轉PDF、圖片操作記錄HTML