MediaPdfThumbnailImagickManager.php in Media PDF Thumbnail 8
File
src/Manager/MediaPdfThumbnailImagickManager.php
View source
<?php
namespace Drupal\media_pdf_thumbnail\Manager;
use Imagick;
class MediaPdfThumbnailImagickManager {
public function generateImage($source, $target) {
$target = dirname($source) . DIRECTORY_SEPARATOR . $target;
$im = new Imagick($source . "[0]");
$im
->setimageformat("png");
$im
->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE);
$im
->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);
$im
->setImageBackgroundColor('white');
$im
->thumbnailimage(2480, 3508);
$im
->writeimage($target);
$fileName = $im
->getImageFilename();
$im
->clear();
$im
->destroy();
return $this
->moveImageToThumbnailFolder($fileName);
}
protected function moveImageToThumbnailFolder($filePath) {
if (file_exists($filePath)) {
$filePathArray = explode('/', $filePath);
if (!empty($filePathArray)) {
$parentFolder = $filePathArray[count($filePathArray) - 2];
$fileName = $filePathArray[count($filePathArray) - 1];
if ($parentFolder) {
$destination = 'public://styles/thumbnail/public/' . $parentFolder . '/';
if (file_prepare_directory($destination, FILE_CREATE_DIRECTORY)) {
if (file_unmanaged_move($filePath, $destination, FILE_EXISTS_REPLACE)) {
return $destination . $fileName;
}
}
}
}
}
return NULL;
}
}