本文整理汇总了PHP中imagick::getImageFormat方法的典型用法代码示例。如果您正苦于以下问题:PHP imagick::getImageFormat方法的具体用法?PHP imagick::getImageFormat怎么用?PHP imagick::getImageFormat使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类imagick
的用法示例。
在下文中一共展示了imagick::getImageFormat方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: resize_imagick
private function resize_imagick($src, $width, $height, $quality, $preserveExif)
{
try {
$img = new imagick($src);
if (strtoupper($img->getImageFormat()) === 'JPEG') {
$img->setImageCompression(imagick::COMPRESSION_JPEG);
$img->setImageCompressionQuality($quality);
if (!$preserveExif) {
try {
$orientation = $img->getImageOrientation();
} catch (ImagickException $e) {
$orientation = 0;
}
$img->stripImage();
if ($orientation) {
$img->setImageOrientation($orientation);
}
}
}
$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;
}
}
示例2: _prepareFilesForDeletion
/**
* Sets up an array of files to be deleted
*
* @param Model $model Model instance
* @param string $field Name of field being modified
* @param array $data array of data
* @param array $options array of configuration settings for a field
* @return boolean
**/
protected function _prepareFilesForDeletion(Model $model, $field, $data, $options = array())
{
if ($options['keepFilesOnDelete'] === true) {
return array();
}
if (!strlen($data[$model->alias][$field])) {
return $this->__filesToRemove;
}
if (!empty($options['fields']['dir']) && isset($data[$model->alias][$options['fields']['dir']])) {
$dir = $data[$model->alias][$options['fields']['dir']];
} else {
if (in_array($options['pathMethod'], array('_getPathFlat', '_getPathPrimaryKey'))) {
$model->id = $data[$model->alias][$model->primaryKey];
$dir = call_user_func(array($this, '_getPath'), $model, $field);
} else {
CakeLog::error(sprintf('Cannot get directory to %s.%s: %s pathMethod is not supported.', $model->alias, $field, $options['pathMethod']));
}
}
$filePathDir = $this->settings[$model->alias][$field]['path'] . (empty($dir) ? '' : $dir . DS);
$filePath = $filePathDir . $data[$model->alias][$field];
$pathInfo = $this->_pathinfo($filePath);
if (!isset($this->__filesToRemove[$model->alias])) {
$this->__filesToRemove[$model->alias] = array();
}
$this->__filesToRemove[$model->alias][] = $filePath;
$this->__foldersToRemove[$model->alias][] = $dir;
$createThumbnails = $options['thumbnails'];
$hasThumbnails = !empty($options['thumbnailSizes']);
if (!$createThumbnails || !$hasThumbnails) {
return $this->__filesToRemove;
}
$directorySeparator = empty($dir) ? '' : DIRECTORY_SEPARATOR;
$mimeType = $this->_getMimeType($filePath);
$isMedia = $this->_isMedia($mimeType);
$isImagickResize = $options['thumbnailMethod'] == 'imagick';
$thumbnailType = $options['thumbnailType'];
if ($isImagickResize) {
if ($isMedia) {
$thumbnailType = $options['mediaThumbnailType'];
}
if (!$thumbnailType || !is_string($thumbnailType)) {
try {
$srcFile = $filePath;
$image = new imagick();
if ($isMedia) {
$image->setResolution(300, 300);
$srcFile = $srcFile . '[0]';
}
$image->readImage($srcFile);
$thumbnailType = $image->getImageFormat();
} catch (Exception $e) {
$thumbnailType = 'png';
}
}
} else {
if (!$thumbnailType || !is_string($thumbnailType)) {
$thumbnailType = $pathInfo['extension'];
}
if (!$thumbnailType) {
$thumbnailType = 'png';
}
}
foreach ($options['thumbnailSizes'] as $size => $geometry) {
$fileName = str_replace(array('{size}', '{geometry}', '{filename}', '{primaryKey}', '{time}', '{microtime}'), array($size, $geometry, $pathInfo['filename'], $model->id, time(), microtime()), $options['thumbnailName']);
$thumbnailPath = $options['thumbnailPath'];
$thumbnailPath = $this->_pathThumbnail($model, $field, compact('geometry', 'size', 'thumbnailPath'));
$thumbnailFilePath = "{$thumbnailPath}{$dir}{$directorySeparator}{$fileName}.{$thumbnailType}";
$this->__filesToRemove[$model->alias][] = $thumbnailFilePath;
}
return $this->__filesToRemove;
}
示例3: array
function _prepareFilesForDeletion(&$model, $field, $data, $options)
{
if (!strlen($data[$model->alias][$field])) {
return $this->__filesToRemove;
}
$dir = $data[$model->alias][$options['fields']['dir']];
$filePathDir = $this->settings[$model->alias][$field]['path'] . $dir . DS;
$filePath = $filePathDir . $data[$model->alias][$field];
$pathInfo = $this->_pathinfo($filePath);
$this->__filesToRemove[$model->alias] = array();
$this->__filesToRemove[$model->alias][] = $filePath;
$createThumbnails = $options['thumbnails'];
$hasThumbnails = !empty($options['thumbnailSizes']);
if (!$createThumbnails || !$hasThumbnails) {
return $this->__filesToRemove;
}
$DS = DIRECTORY_SEPARATOR;
$mimeType = $this->_getMimeType($filePath);
$isMedia = $this->_isMedia($model, $mimeType);
$isImagickResize = $options['thumbnailMethod'] == 'imagick';
$thumbnailType = $options['thumbnailType'];
if ($isImagickResize) {
if ($isMedia) {
$thumbnailType = $options['mediaThumbnailType'];
}
if (!$thumbnailType || !is_string($thumbnailType)) {
try {
$srcFile = $filePath;
$image = new imagick();
if ($isMedia) {
$image->setResolution(300, 300);
$srcFile = $srcFile . '[0]';
}
$image->readImage($srcFile);
$thumbnailType = $image->getImageFormat();
} catch (Exception $e) {
$thumbnailType = 'png';
}
}
} else {
if (!$thumbnailType || !is_string($thumbnailType)) {
$thumbnailType = $pathInfo['extension'];
}
if (!$thumbnailType) {
$thumbnailType = 'png';
}
}
foreach ($options['thumbnailSizes'] as $size => $geometry) {
$fileName = str_replace(array('{size}', '{filename}'), array($size, $pathInfo['filename']), $options['thumbnailName']);
$thumbnailPath = $options['thumbnailPath'];
$thumbnailPath = $this->_pathThumbnail($model, $field, compact('geometry', 'size', 'thumbnailPath'));
$thumbnailFilePath = "{$thumbnailPath}{$dir}{$DS}{$fileName}.{$thumbnailType}";
$this->__filesToRemove[$model->alias][] = $thumbnailFilePath;
}
return $this->__filesToRemove;
}