本文整理汇总了PHP中Thumbnail::makeThumbnail方法的典型用法代码示例。如果您正苦于以下问题:PHP Thumbnail::makeThumbnail方法的具体用法?PHP Thumbnail::makeThumbnail怎么用?PHP Thumbnail::makeThumbnail使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Thumbnail
的用法示例。
在下文中一共展示了Thumbnail::makeThumbnail方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createThumbnail
/**
* Creates and saves a thumbnail picture.
*/
public function createThumbnail($thumbnailWidth = ATTACHMENT_THUMBNAIL_WIDTH, $thumbnailHeight = ATTACHMENT_THUMBNAIL_HEIGHT, $addSourceInfo = ATTACHMENT_THUMBNAIL_ADD_SOURCE_INFO, $useEmbedded = ATTACHMENT_THUMBNAIL_USE_EMBEDDED)
{
// make thumbnail
$sourceFile = WCF_DIR . 'attachments/attachment-' . $this->attachmentID;
$targetFile = WCF_DIR . 'attachments/thumbnail-' . $this->attachmentID;
$thumbnail = new Thumbnail($sourceFile, $thumbnailWidth, $thumbnailHeight, $addSourceInfo, $this->attachmentName, $useEmbedded);
// get thumbnail
try {
if ($thumbnailData = $thumbnail->makeThumbnail()) {
// save thumbnail
$file = new File($targetFile);
$file->write($thumbnailData);
unset($thumbnailData);
$file->close();
// update database entry
$thumbnailSize = intval(filesize($targetFile));
list($thumbnailWidth, $thumbnailHeight, ) = @getImagesize($targetFile);
$sql = "UPDATE\twcf" . WCF_N . "_attachment\n\t\t\t\t\tSET \tthumbnailType = '" . escapeString($thumbnail->getMimeType()) . "',\n\t\t\t\t\t\tthumbnailSize = " . $thumbnailSize . ",\n\t\t\t\t\t\tthumbnailWidth = " . $thumbnailWidth . ",\n\t\t\t\t\t\tthumbnailHeight = " . $thumbnailHeight . "\n\t\t\t\t\tWHERE \tattachmentID = " . $this->attachmentID;
WCF::getDB()->registerShutdownUpdate($sql);
// update data
$this->data['thumbnailType'] = $thumbnail->getMimeType();
$this->data['thumbnailSize'] = $thumbnailSize;
}
} catch (Exception $e) {
}
}
示例2: scalePreviewImage
/**
* Scales the style preview image.
*
* @param string $filename
* @return boolean
*/
public static function scalePreviewImage($filename)
{
require_once WCF_DIR . 'lib/data/image/Thumbnail.class.php';
$thumbnail = new Thumbnail($filename, self::STYLE_PREVIEW_IMAGE_MAX_WIDTH, self::STYLE_PREVIEW_IMAGE_MAX_HEIGHT);
if ($source = $thumbnail->makeThumbnail()) {
require_once WCF_DIR . 'lib/system/io/File.class.php';
$file = new File($filename);
$file->write($source);
$file->close();
return true;
}
return false;
}
示例3: create
/**
* Creates a new avatar.
*
* @param string $tmpName
* @param string $name
* @param string $field
* @return integer avatar id
*/
public static function create($tmpName, $name, $field, $userID = 0, $groupID = 0, $neededPoints = 0, $avatarCategoryID = 0)
{
// check avatar content
if (!ImageUtil::checkImageContent($tmpName)) {
throw new UserInputException($field, 'badAvatar');
}
// get file extension
/*$fileExtension = '';
if (!empty($name) && StringUtil::indexOf($name, '.') !== false) {
$fileExtension = StringUtil::toLowerCase(StringUtil::substring($name, StringUtil::lastIndexOf($name, '.') + 1));
}*/
// get image data
if (($imageData = @getImageSize($tmpName)) === false) {
throw new UserInputException($field, 'badAvatar');
}
// get file extension by mime
$fileExtension = ImageUtil::getExtensionByMimeType($imageData['mime']);
// check file extension
if (!in_array($fileExtension, self::getAllowedFileExtensions())) {
throw new UserInputException($field, 'notAllowedExtension');
}
// get avatar size
$width = $imageData[0];
$height = $imageData[1];
if (!$width || !$height) {
throw new UserInputException($field, 'badAvatar');
}
$size = @filesize($tmpName);
// generate thumbnail if necessary
if ($width > WCF::getUser()->getPermission('user.profile.avatar.maxWidth') || $height > WCF::getUser()->getPermission('user.profile.avatar.maxHeight')) {
$thumbnail = new Thumbnail($tmpName, WCF::getUser()->getPermission('user.profile.avatar.maxWidth'), WCF::getUser()->getPermission('user.profile.avatar.maxHeight'));
$thumbnailSrc = $thumbnail->makeThumbnail();
if ($thumbnailSrc) {
$file = new File($tmpName);
$file->write($thumbnailSrc);
$file->close();
// refresh avatar size
list($width, $height, ) = @getImageSize($tmpName);
clearstatcache();
$size = @filesize($tmpName);
// get new file extension
$fileExtension = ImageUtil::getExtensionByMimeType($thumbnail->getMimeType());
}
unset($thumbnail, $thumbnailSrc);
}
// check size again
if ($width > WCF::getUser()->getPermission('user.profile.avatar.maxWidth') || $height > WCF::getUser()->getPermission('user.profile.avatar.maxHeight') || $size > WCF::getUser()->getPermission('user.profile.avatar.maxSize')) {
throw new UserInputException($field, 'tooLarge');
}
// create avatar
$avatarID = self::insert(basename($name), array('avatarExtension' => $fileExtension, 'width' => $width, 'height' => $height, 'userID' => $userID, 'groupID' => $groupID, 'neededPoints' => $neededPoints, 'avatarCategoryID' => $avatarCategoryID));
// copy avatar to avatar folder
if (!@copy($tmpName, WCF_DIR . 'images/avatars/avatar-' . $avatarID . '.' . $fileExtension)) {
// copy failed
// delete avatar
@unlink($tmpName);
$sql = "DELETE FROM\twcf" . WCF_N . "_avatar\n\t\t\t\tWHERE\t\tavatarID = " . $avatarID;
WCF::getDB()->sendQuery($sql);
throw new UserInputException($field, 'copyFailed');
}
// set permissions
@chmod(WCF_DIR . 'images/avatars/avatar-' . $avatarID . '.' . $fileExtension, 0666);
return $avatarID;
}