本文整理汇总了PHP中File::getHeight方法的典型用法代码示例。如果您正苦于以下问题:PHP File::getHeight方法的具体用法?PHP File::getHeight怎么用?PHP File::getHeight使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类File
的用法示例。
在下文中一共展示了File::getHeight方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getImageArea
/**
* @todo Add unit tests
*
* @param File $image
* @return bool
*/
function getImageArea($image)
{
$ser = $image->getMetadata();
if ($ser) {
$metadata = unserialize($ser);
return $image->getWidth() * $image->getHeight() * $metadata['frameCount'];
} else {
return $image->getWidth() * $image->getHeight();
}
}
示例2: getThumbSuffix
private function getThumbSuffix(File $file, $expectedWidth, $expectedHeight, $crop)
{
$originalHeight = $file->getHeight();
$originalWidth = $file->getWidth();
$originalRatio = $originalWidth / $originalHeight;
$ratio = $expectedWidth / $expectedHeight;
if ($originalRatio > $ratio) {
$width = round($originalHeight * $ratio);
$height = $originalHeight;
} else {
$width = $originalWidth;
$height = round($originalWidth / $ratio);
}
$width = $width > $expectedWidth ? $expectedWidth : $width;
$left = 0;
$right = $originalWidth;
$top = round($originalHeight * $crop);
$bottom = $top + $height;
return "{$width}px-{$left},{$right},{$top},{$bottom}";
}
示例3: fileLine
/**
* @param File $file
* @returns string
*/
private function fileLine($file)
{
global $wgLang, $wgTitle;
$target = $this->page->getPrefixedText();
$date = $wgLang->timeanddate($file->getTimestamp(), true);
$del = '';
# Hidden files...
if ($file->isDeleted(File::DELETED_FILE)) {
$del = ' <tt>' . wfMsgHtml('deletedrev') . '</tt>';
if (!$file->userCan(File::DELETED_FILE)) {
$pageLink = $date;
} else {
$pageLink = $this->skin->makeKnownLinkObj($wgTitle, $date, "target={$target}&file={$file->sha1}." . $file->getExtension());
}
$pageLink = '<span class="history-deleted">' . $pageLink . '</span>';
# Regular files...
} else {
$url = $file->getUrlRel();
$pageLink = "<a href=\"{$url}\">{$date}</a>";
}
$data = wfMsg('widthheight', $wgLang->formatNum($file->getWidth()), $wgLang->formatNum($file->getHeight())) . ' (' . wfMsgExt('nbytes', 'parsemag', $wgLang->formatNum($file->getSize())) . ')';
$data = htmlspecialchars($data);
return "<li>{$pageLink} " . $this->fileUserTools($file) . " {$data} " . $this->fileComment($file) . "{$del}</li>";
}
示例4: isImageAreaOkForThumbnaling
/**
* Check if the file is smaller than the maximum image area for thumbnailing.
*
* Runs the 'BitmapHandlerCheckImageArea' hook.
*
* @param File $file
* @param array $params
* @return bool
* @since 1.25
*/
public function isImageAreaOkForThumbnaling($file, &$params)
{
global $wgMaxImageArea;
# For historical reasons, hook starts with BitmapHandler
$checkImageAreaHookResult = null;
Hooks::run('BitmapHandlerCheckImageArea', array($file, &$params, &$checkImageAreaHookResult));
if (!is_null($checkImageAreaHookResult)) {
// was set by hook, so return that value
return (bool) $checkImageAreaHookResult;
}
$srcWidth = $file->getWidth($params['page']);
$srcHeight = $file->getHeight($params['page']);
if ($srcWidth * $srcHeight > $wgMaxImageArea && !($file->getMimeType() == 'image/jpeg' && $this->getScalerType(false, false) == 'im')) {
# Only ImageMagick can efficiently downsize jpg images without loading
# the entire file in memory
return false;
}
return true;
}
示例5: getDimensionsString
/**
* @param File $file
* @return string
*/
function getDimensionsString($file)
{
$pages = $file->pageCount();
if ($pages > 1) {
return wfMessage('widthheightpage')->numParams($file->getWidth(), $file->getHeight(), $pages)->text();
} else {
return wfMessage('widthheight')->numParams($file->getWidth(), $file->getHeight())->text();
}
}
示例6: imgIsVertical
/**
* @param File $img
*/
private static function imgIsVertical($img)
{
$height = $img->getHeight();
$width = $img->getWidth();
if (!$height || !$width) {
return false;
}
return $height > $width;
}
示例7: getSquaredThumbnailUrl
/**
* Return a URL that displays $file scaled and/or cropped to fill the entire square thumbnail dimensions with
* no whitespace if possible. Images smaller than the thumbnail size will be enlarged if their image area (L x W)
* is above a certain threshold. This threshold is expressed as a percentage of the requested thumb area and
* given by:
*
* self::thumbEnlargeThreshold
*
* Small images that do not meet this threshold will be centered within the thumb container and padded with a
* transparent background.
*
* @param File $file
* @param int $dimension
* @param bool $useWebP
* @return string The URL of the image
*/
public static function getSquaredThumbnailUrl(File $file, $dimension, $useWebP = false)
{
// Create a new url generator
$gen = $file->getUrlGenerator();
// Determine if this image falls into a small image category. We compare the area of the image with the
// area of the requested thumb and use self::thumbEnlargeThreshold as the threshold for enlarging
$height = $file->getHeight();
$width = $file->getWidth();
$isSmallImage = $height < $dimension || $width < $dimension;
$imageBelowThreshold = $height * $width <= self::thumbEnlargeThreshold * $dimension * $dimension;
// If height or width is less than a side of our square target thumbnail, we need to decide whether we're
// going to enlarge it or not
if ($isSmallImage && $imageBelowThreshold) {
// Leave the (small) full sized image as is, but put within the requested container with transparent fill
$gen->fixedAspectRatioDown()->backgroundFill('transparent');
} else {
if ($height > $width) {
// Portrait mode, crop at the top
$gen->topCrop();
} else {
// Landscape mode, crop in the middle
$gen->zoomCrop();
}
}
if ($useWebP) {
$gen->webp();
}
$url = $gen->width($dimension)->height($dimension)->url();
return $url;
}
示例8: getHTML
public function getHTML()
{
$data = $this->list->msg('widthheight')->numParams($this->file->getWidth(), $this->file->getHeight())->text() . ' (' . $this->list->msg('nbytes')->numParams($this->file->getSize())->text() . ')';
return '<li>' . $this->getLink() . ' ' . $this->getUserTools() . ' ' . $data . ' ' . $this->getComment() . '</li>';
}
示例9: getHTML
public function getHTML()
{
$data = wfMsg('widthheight', $this->list->getLang()->formatNum($this->file->getWidth()), $this->list->getLang()->formatNum($this->file->getHeight())) . ' (' . wfMsgExt('nbytes', 'parsemag', $this->list->getLang()->formatNum($this->file->getSize())) . ')';
return '<li>' . $this->getLink() . ' ' . $this->getUserTools() . ' ' . $data . ' ' . $this->getComment() . '</li>';
}
示例10: openShowImage
protected function openShowImage()
{
global $wgOut, $wgUser, $wgImageLimits, $wgRequest, $wgLang, $wgEnableUploads, $wgSend404Code;
$this->loadFile();
$sizeSel = intval($wgUser->getOption('imagesize'));
if (!isset($wgImageLimits[$sizeSel])) {
$sizeSel = User::getDefaultOption('imagesize');
// The user offset might still be incorrect, specially if
// $wgImageLimits got changed (see bug #8858).
if (!isset($wgImageLimits[$sizeSel])) {
// Default to the first offset in $wgImageLimits
$sizeSel = 0;
}
}
$max = $wgImageLimits[$sizeSel];
$maxWidth = $max[0];
$maxHeight = $max[1];
$dirmark = $wgLang->getDirMark();
if ($this->displayImg->exists()) {
# image
$page = $wgRequest->getIntOrNull('page');
if (is_null($page)) {
$params = array();
$page = 1;
} else {
$params = array('page' => $page);
}
$width_orig = $this->displayImg->getWidth($page);
$width = $width_orig;
$height_orig = $this->displayImg->getHeight($page);
$height = $height_orig;
$longDesc = wfMsg('parentheses', $this->displayImg->getLongDesc());
wfRunHooks('ImageOpenShowImageInlineBefore', array(&$this, &$wgOut));
if ($this->displayImg->allowInlineDisplay()) {
# image
# "Download high res version" link below the image
# $msgsize = wfMsgHtml( 'file-info-size', $width_orig, $height_orig, Linker::formatSize( $this->displayImg->getSize() ), $mime );
# We'll show a thumbnail of this image
if ($width > $maxWidth || $height > $maxHeight) {
# Calculate the thumbnail size.
# First case, the limiting factor is the width, not the height.
if ($width / $height >= $maxWidth / $maxHeight) {
$height = round($height * $maxWidth / $width);
$width = $maxWidth;
# Note that $height <= $maxHeight now.
} else {
$newwidth = floor($width * $maxHeight / $height);
$height = round($height * $newwidth / $width);
$width = $newwidth;
# Note that $height <= $maxHeight now, but might not be identical
# because of rounding.
}
$msgbig = wfMsgHtml('show-big-image');
$otherSizes = array();
foreach ($wgImageLimits as $size) {
if ($size[0] < $width_orig && $size[1] < $height_orig && $size[0] != $width && $size[1] != $height) {
$otherSizes[] = $this->makeSizeLink($params, $size[0], $size[1]);
}
}
$msgsmall = wfMessage('show-big-image-preview')->rawParams($this->makeSizeLink($params, $width, $height))->parse();
if (count($otherSizes) && $this->displayImg->getRepo()->canTransformVia404()) {
$msgsmall .= ' ' . Html::rawElement('span', array('class' => 'mw-filepage-other-resolutions'), wfMessage('show-big-image-other')->rawParams($wgLang->pipeList($otherSizes))->params(count($otherSizes))->parse());
}
} elseif ($width == 0 && $height == 0) {
# Some sort of audio file that doesn't have dimensions
# Don't output a no hi res message for such a file
$msgsmall = '';
} else {
# Image is small enough to show full size on image page
$msgsmall = wfMessage('file-nohires')->parse();
}
$params['width'] = $width;
$params['height'] = $height;
$thumbnail = $this->displayImg->transform($params);
$showLink = true;
$anchorclose = Html::rawElement('div', array('class' => 'mw-filepage-resolutioninfo'), $msgsmall);
$isMulti = $this->displayImg->isMultipage() && $this->displayImg->pageCount() > 1;
if ($isMulti) {
$wgOut->addHTML('<table class="multipageimage"><tr><td>');
}
if ($thumbnail) {
$options = array('alt' => $this->displayImg->getTitle()->getPrefixedText(), 'file-link' => true);
$wgOut->addHTML('<div class="fullImageLink" id="file">' . $thumbnail->toHtml($options) . $anchorclose . "</div>\n");
}
if ($isMulti) {
$count = $this->displayImg->pageCount();
if ($page > 1) {
$label = $wgOut->parse(wfMsg('imgmultipageprev'), false);
$link = Linker::link($this->getTitle(), $label, array(), array('page' => $page - 1), array('known', 'noclasses'));
$thumb1 = Linker::makeThumbLinkObj($this->getTitle(), $this->displayImg, $link, $label, 'none', array('page' => $page - 1));
} else {
$thumb1 = '';
}
if ($page < $count) {
$label = wfMsg('imgmultipagenext');
$link = Linker::link($this->getTitle(), $label, array(), array('page' => $page + 1), array('known', 'noclasses'));
$thumb2 = Linker::makeThumbLinkObj($this->getTitle(), $this->displayImg, $link, $label, 'none', array('page' => $page + 1));
} else {
$thumb2 = '';
}
//.........这里部分代码省略.........
示例11: fitClosest
/**
* Return height and width for image $file such that the image is shrunk (keeping aspect ratio) to just the
* height or width of $dim, whichever is closest. Typically the image will then be cropped to the $dim bounds.
* The original file height and width will be returned for images both shorter and narrower than $dim.
*
* @param File $file
* @param array $dim
* @return array
*/
public function fitClosest(File $file, array $dim)
{
$aspect = $file->getWidth() / $file->getHeight();
$adjWidth = $file->getWidth();
$adjHeight = $file->getHeight();
// Adjust the image to the closest dimension.
if ($file->getWidth() > $dim['w'] || $file->getHeight() > $dim['h']) {
$widthDelta = $file->getWidth() - $dim['w'];
$heightDelta = $file->getHeight() - $dim['h'];
if ($widthDelta > 0 && $widthDelta < $heightDelta) {
// Oversized image, constrain on width
$adjWidth = $dim['w'];
$adjHeight = intval($adjWidth / $aspect);
} else {
// Oversized image, constrain on height
$adjHeight = $dim['h'];
$adjWidth = intval($adjHeight * $aspect);
}
}
return [$adjWidth, $adjHeight];
}
示例12: getImageArea
/**
* Function that returns the number of pixels to be thumbnailed.
* Intended for animated GIFs to multiply by the number of frames.
*
* @param File $image
* @return int
*/
function getImageArea($image)
{
return $image->getWidth() * $image->getHeight();
}
示例13: array
/**
* Make an image link
* @param Title $title Title object
* @param File $file File object, or false if it doesn't exist
*
* @param array $frameParams Associative array of parameters external to the media handler.
* Boolean parameters are indicated by presence or absence, the value is arbitrary and
* will often be false.
* thumbnail If present, downscale and frame
* manualthumb Image name to use as a thumbnail, instead of automatic scaling
* framed Shows image in original size in a frame
* frameless Downscale but don't frame
* upright If present, tweak default sizes for portrait orientation
* upright_factor Fudge factor for "upright" tweak (default 0.75)
* border If present, show a border around the image
* align Horizontal alignment (left, right, center, none)
* valign Vertical alignment (baseline, sub, super, top, text-top, middle,
* bottom, text-bottom)
* alt Alternate text for image (i.e. alt attribute). Plain text.
* caption HTML for image caption.
*
* @param array $handlerParams Associative array of media handler parameters, to be passed
* to transform(). Typical keys are "width" and "page".
* @param string $time, timestamp of the file, set as false for current
*/
function makeImageLink2(Title $title, $file, $frameParams = array(), $handlerParams = array(), $time = false)
{
global $wgContLang, $wgUser, $wgThumbLimits, $wgThumbUpright;
if ($file && !$file->allowInlineDisplay()) {
wfDebug(__METHOD__ . ': ' . $title->getPrefixedDBkey() . " does not allow inline display\n");
return $this->makeKnownLinkObj($title);
}
if (!$file) {
return;
}
// Shortcuts
$fp =& $frameParams;
$hp =& $handlerParams;
$section = WikihowArticleEditor::getImageSection($file->getName());
// Clean up parameters
$page = isset($hp['page']) ? $hp['page'] : false;
if (!isset($fp['align'])) {
$fp['align'] = '';
}
if (!isset($fp['alt'])) {
$fp['alt'] = '';
}
$imageClass = "";
$prefix = $postfix = '';
$isPortrait = false;
$isLarge = false;
$sourceWidth = $file->getWidth();
$sourceHeight = $file->getHeight();
if ($sourceHeight > $sourceWidth) {
if ($sourceWidth > 200) {
$isPortrait = true;
$isLarge = true;
}
} else {
//landscape
if ($sourceWidth > 400) {
$isLarge = true;
}
}
if ($section != "summary" && $section != "steps") {
$isLarge = false;
}
if ($section == "summary") {
//for intro they must specify 625 and center to have it shown
if ($hp['width'] >= 625) {
$imageClass .= " introimage ";
}
}
if ($file && !isset($hp['width'])) {
$hp['width'] = $file->getWidth($page);
if (isset($fp['thumbnail']) || isset($fp['framed']) || isset($fp['frameless']) || !$hp['width']) {
$wopt = $wgUser->getOption('thumbsize');
if (!isset($wgThumbLimits[$wopt])) {
$wopt = User::getDefaultOption('thumbsize');
}
// Reduce width for upright images when parameter 'upright' is used
if (isset($fp['upright']) && $fp['upright'] == 0) {
$fp['upright'] = $wgThumbUpright;
}
// Use width which is smaller: real image width or user preference width
// For caching health: If width scaled down due to upright parameter, round to full __0 pixel to avoid the creation of a lot of odd thumbs
$prefWidth = isset($fp['upright']) ? round($wgThumbLimits[$wopt] * $fp['upright'], -1) : $wgThumbLimits[$wopt];
if ($hp['width'] <= 0 || $prefWidth < $hp['width']) {
$hp['width'] = $prefWidth;
}
}
}
//not using thumbs on large images anymore
if (!$isLarge && isset($fp['thumbnail']) || isset($fp['manualthumb']) || isset($fp['framed'])) {
# Create a thumbnail. Alignment depends on language
# writing direction, # right aligned for left-to-right-
# languages ("Western languages"), left-aligned
# for right-to-left-languages ("Semitic languages")
#
# If thumbnail width has not been provided, it is set
//.........这里部分代码省略.........
示例14: onThumbnailVideoHTML
public static function onThumbnailVideoHTML($options, $linkAttribs, $imageAttribs, File $file, &$html)
{
global $wgRTEParserEnabled;
if (!empty($wgRTEParserEnabled)) {
return true;
}
if (is_null(self::$isWikiaMobile)) {
self::init();
}
if (self::$isWikiaMobile) {
wfProfileIn(__METHOD__);
/**
* WikiaMobile: lazy loading images in a SEO-friendly manner
* @author Federico "Lox" Lucignano <federico@wikia-inc.com
* @author Artur Klajnerok <arturk@wikia-inc.com>
*/
$origImg = Xml::element('img', $imageAttribs, '', true);
if (empty($imageAttribs['alt'])) {
unset($imageAttribs['alt']);
}
//Not all 'files' have getProviderName defined
if (is_callable([$file, 'getProviderName'])) {
$provider = $file->getProviderName();
} else {
$provider = '';
}
$imageParams = array('type' => 'video', 'provider' => $provider, 'full' => $imageAttribs['src']);
if (!empty($imageAttribs['data-video-key'])) {
$imageParams['name'] = htmlspecialchars($imageAttribs['data-video-key']);
}
if (!empty($options['caption'])) {
$imageParams['capt'] = 1;
}
// TODO: this resizes every video thumbnail with a width over 64px regardless of where it appears.
// We may want to add the ability to allow custom image widths (like on the file page history table for example)
$size = WikiaMobileMediaService::calculateMediaSize($file->getWidth(), $file->getHeight());
$thumb = $file->transform($size);
$imageAttribs['src'] = wfReplaceImageServer($thumb->getUrl(), $file->getTimestamp());
$imageAttribs['width'] = $size['width'];
$imageAttribs['height'] = $size['height'];
$data = ['attributes' => $imageAttribs, 'parameters' => [$imageParams], 'anchorAttributes' => $linkAttribs, 'noscript' => $origImg, 'isSmall' => WikiaMobileMediaService::isSmallImage($imageAttribs['width'], $imageAttribs['height'])];
$title = $file->getTitle()->getDBKey();
$titleText = $file->getTitle()->getText();
$views = MediaQueryService::getTotalVideoViewsByTitle($title);
$data['content'] = Xml::element('span', ['class' => 'videoInfo'], "{$titleText} (" . $file->getHandler()->getFormattedDuration() . ", " . wfMessage('wikiamobile-video-views-counter', $views)->inContentLanguage()->text() . ')');
$html = F::app()->sendRequest('WikiaMobileMediaService', 'renderImageTag', $data, true)->toString();
wfProfileOut(__METHOD__);
}
return true;
}
示例15: openShowImage
protected function openShowImage()
{
global $wgImageLimits, $wgEnableUploads, $wgSend404Code;
$this->loadFile();
$out = $this->getContext()->getOutput();
$user = $this->getContext()->getUser();
$lang = $this->getContext()->getLanguage();
$dirmark = $lang->getDirMarkEntity();
$request = $this->getContext()->getRequest();
$max = $this->getImageLimitsFromOption($user, 'imagesize');
$maxWidth = $max[0];
$maxHeight = $max[1];
if ($this->displayImg->exists()) {
# image
$page = $request->getIntOrNull('page');
if (is_null($page)) {
$params = array();
$page = 1;
} else {
$params = array('page' => $page);
}
$renderLang = $request->getVal('lang');
if (!is_null($renderLang)) {
$handler = $this->displayImg->getHandler();
if ($handler && $handler->validateParam('lang', $renderLang)) {
$params['lang'] = $renderLang;
} else {
$renderLang = null;
}
}
$width_orig = $this->displayImg->getWidth($page);
$width = $width_orig;
$height_orig = $this->displayImg->getHeight($page);
$height = $height_orig;
$filename = wfEscapeWikiText($this->displayImg->getName());
$linktext = $filename;
wfRunHooks('ImageOpenShowImageInlineBefore', array(&$this, &$out));
if ($this->displayImg->allowInlineDisplay()) {
# image
# "Download high res version" link below the image
# $msgsize = wfMessage( 'file-info-size', $width_orig, $height_orig, Linker::formatSize( $this->displayImg->getSize() ), $mime )->escaped();
# We'll show a thumbnail of this image
if ($width > $maxWidth || $height > $maxHeight) {
# Calculate the thumbnail size.
# First case, the limiting factor is the width, not the height.
if ($width / $height >= $maxWidth / $maxHeight) {
// FIXME: Possible division by 0. bug 36911
$height = round($height * $maxWidth / $width);
// FIXME: Possible division by 0. bug 36911
$width = $maxWidth;
# Note that $height <= $maxHeight now.
} else {
$newwidth = floor($width * $maxHeight / $height);
// FIXME: Possible division by 0. bug 36911
$height = round($height * $newwidth / $width);
// FIXME: Possible division by 0. bug 36911
$width = $newwidth;
# Note that $height <= $maxHeight now, but might not be identical
# because of rounding.
}
$linktext = wfMessage('show-big-image')->escaped();
if ($this->displayImg->getRepo()->canTransformVia404()) {
$thumbSizes = $wgImageLimits;
// Also include the full sized resolution in the list, so
// that users know they can get it. This will link to the
// original file asset if mustRender() === false. In the case
// that we mustRender, some users have indicated that they would
// find it useful to have the full size image in the rendered
// image format.
$thumbSizes[] = array($width_orig, $height_orig);
} else {
# Creating thumb links triggers thumbnail generation.
# Just generate the thumb for the current users prefs.
$thumbSizes = array($this->getImageLimitsFromOption($user, 'thumbsize'));
if (!$this->displayImg->mustRender()) {
// We can safely include a link to the "full-size" preview,
// without actually rendering.
$thumbSizes[] = array($width_orig, $height_orig);
}
}
# Generate thumbnails or thumbnail links as needed...
$otherSizes = array();
foreach ($thumbSizes as $size) {
// We include a thumbnail size in the list, if it is
// less than or equal to the original size of the image
// asset ($width_orig/$height_orig). We also exclude
// the current thumbnail's size ($width/$height)
// since that is added to the message separately, so
// it can be denoted as the current size being shown.
if ($size[0] <= $width_orig && $size[1] <= $height_orig && $size[0] != $width && $size[1] != $height) {
$sizeLink = $this->makeSizeLink($params, $size[0], $size[1]);
if ($sizeLink) {
$otherSizes[] = $sizeLink;
}
}
}
$otherSizes = array_unique($otherSizes);
$msgsmall = '';
$sizeLinkBigImagePreview = $this->makeSizeLink($params, $width, $height);
if ($sizeLinkBigImagePreview) {
//.........这里部分代码省略.........