Imagick::queryFontMetrics
(PECL imagick 2.0.0)
Imagick::queryFontMetrics — Returns an array representing the font metrics
Описание
Returns a multi-dimensional array representing the font metrics.
Список параметров
-
properties
-
ImagickDraw object containing font properties
-
text
-
The text
-
multiline
-
Multiline parameter. If left empty it is autodetected
Возвращаемые значения
Returns a multi-dimensional array representing the font metrics.
Ошибки
Вызывает ImagickException при ошибке.
Примеры
Пример #1 Using Imagick::queryFontMetrics():
Query the metrics for the text and dump the results on the screen.
<?php
/* Create a new Imagick object */
$im = new Imagick();
/* Create an ImagickDraw object */
$draw = new ImagickDraw();
/* Set the font */
$draw->setFont('/path/to/font.ttf');
/* Dump the font metrics, autodetect multiline */
var_dump($im->queryFontMetrics($draw, "Hello World!"));
?>
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Обработка и генерация изображений
- Обработка изображений (ImageMagick)
- Функция Imagick::adaptiveBlurImage() - Добавляет адаптивный фильтр размытия к изображению
- Функция Imagick::adaptiveResizeImage() - Адаптивное изменение размера изображения с данными триангуляции
- Функция Imagick::adaptiveSharpenImage() - Адаптивное изменение резкости изображения
- Функция Imagick::adaptiveThresholdImage() - Выбор порога для каждого пикселя в зависимости от диапазона интенсивности
- Функция Imagick::addImage() - Добавляет новое изображение к списку изображений объекта Imagick
- Функция Imagick::addNoiseImage() - Накладывает случайный шум на изображение
- Функция Imagick::affineTransformImage() - Преобразование изображения
- Функция Imagick::animateImages() - Анимация одного или нескольких изображений
- Функция Imagick::annotateImage() - Добавляет текстовый комментарий на изображение
- Функция Imagick::appendImages() - Объединяет набор изображений
- Imagick::autoLevelImage
- Функция Imagick::averageImages() - Усредняет набор изображений
- Функция Imagick::blackThresholdImage() - Перевести все пиксели ниже порогового значения в черный цвет
- Imagick::blueShiftImage
- Функция Imagick::blurImage() - Добавляет фильтр размытия к изображению
- Функция Imagick::borderImage() - Окружает изображение рамкой
- Imagick::brightnessContrastImage
- Функция Imagick::charcoalImage() - Рисование углем
- Функция Imagick::chopImage() - Удаляет область изображения и обрезает его
- Imagick::clampImage
- Функция Imagick::clear() - Очищает все ресурсы, связанные с объектом Imagick
- Функция Imagick::clipImage() - Обрезка вдоль ближайшего контура с профилем 8BIM
- Imagick::clipImagePath
- Функция Imagick::clipPathImage() - Отсечь вдоль обозначенного контура с профилем 8BIM
- Функция Imagick::clone() - Создает точную копию объекта Imagick
- Функция Imagick::clutImage() - Заменяет цвета в изображении
- Функция Imagick::coalesceImages() - Composites a set of images
- Функция Imagick::colorFloodfillImage() - Changes the color value of any pixel that matches target
- Функция Imagick::colorizeImage() - Смешивание цвета заливки с изображением
- Imagick::colorMatrixImage
- Функция Imagick::combineImages() - Combines one or more images into a single image
- Функция Imagick::commentImage() - Adds a comment to your image
- Функция Imagick::compareImageChannels() - Returns the difference in one or more images
- Функция Imagick::compareImageLayers() - Returns the maximum bounding region between images
- Функция Imagick::compareImages() - Compares an image to a reconstructed image
- Функция Imagick::compositeImage() - Composite one image onto another
- Функция Imagick::__construct() - Конструктор объекта Imagick
- Функция Imagick::contrastImage() - Change the contrast of the image
- Функция Imagick::contrastStretchImage() - Enhances the contrast of a color image
- Функция Imagick::convolveImage() - Applies a custom convolution kernel to the image
- Imagick::count
- Функция Imagick::cropImage() - Извлекает область изображения
- Функция Imagick::cropThumbnailImage() - Creates a crop thumbnail
- Функция Imagick::current() - Возвращает ссылку на текущий объект Imagick
- Функция Imagick::cycleColormapImage() - Displaces an image's colormap
- Функция Imagick::decipherImage() - Deciphers an image
- Функция Imagick::deconstructImages() - Returns certain pixel differences between images
- Функция Imagick::deleteImageArtifact() - Delete image artifact
- Imagick::deleteImageProperty
- Функция Imagick::deskewImage() - Removes skew from the image
- Функция Imagick::despeckleImage() - Reduces the speckle noise in an image
- Функция Imagick::destroy() - Удаляет объект Imagick
- Функция Imagick::displayImage() - Выводит изображение
- Функция Imagick::displayImages() - Выводит изображение или последовательность изображений
- Функция Imagick::distortImage() - Distorts an image using various distortion methods
- Функция Imagick::drawImage() - Выполняет рендеринг объекта ImagickDraw на текущем изображении
- Функция Imagick::edgeImage() - Enhance edges within the image
- Функция Imagick::embossImage() - Returns a grayscale image with a three-dimensional effect
- Функция Imagick::encipherImage() - Enciphers an image
- Функция Imagick::enhanceImage() - Improves the quality of a noisy image
- Функция Imagick::equalizeImage() - Equalizes the image histogram
- Функция Imagick::evaluateImage() - Applies an expression to an image
- Функция Imagick::exportImagePixels() - Exports raw image pixels
- Функция Imagick::extentImage() - Set image size
- Imagick::filter
- Функция Imagick::flattenImages() - Merges a sequence of images
- Функция Imagick::flipImage() - Создает вертикальное зеркало изображения
- Функция Imagick::floodFillPaintImage() - Changes the color value of any pixel that matches target
- Функция Imagick::flopImage() - Создает горизонтальное зеркало изображения
- Imagick::forwardFourierTransformImage
- Функция Imagick::frameImage() - Adds a simulated three-dimensional border
- Функция Imagick::functionImage() - Applies a function on the image
- Функция Imagick::fxImage() - Evaluate expression for each pixel in the image
- Функция Imagick::gammaImage() - Gamma-corrects an image
- Функция Imagick::gaussianBlurImage() - Blurs an image
- Функция Imagick::getColorspace() - Возвращает цветовую палитру
- Функция Imagick::getCompression() - Возвращает тип сжатия объекта
- Функция Imagick::getCompressionQuality() - Возвращает качество сжатия объекта
- Функция Imagick::getCopyright() - Возвращает копирайт API ImageMagick в виде строки
- Функция Imagick::getFilename() - Имя файла результирующего изображения
- Функция Imagick::getFont() - Возвращает название шрифта
- Функция Imagick::getFormat() - Возвращает формат Imagick объекта
- Функция Imagick::getGravity() - Возвращает значение гравитации (притяжения)
- Функция Imagick::getHomeURL() - Возвращает домашний URL библиотеки ImageMagick
- Функция Imagick::getImage() - Возвращает новый объект Imagick
- Функция Imagick::getImageAlphaChannel() - Возвращает альфа-канал изображения
- Функция Imagick::getImageArtifact() - Get image artifact
- Imagick::getImageAttribute
- Функция Imagick::getImageBackgroundColor() - Возвращает цвет фона изображения
- Функция Imagick::getImageBlob() - Returns the image sequence as a blob
- Функция Imagick::getImageBluePrimary() - Returns the chromaticy blue primary point
- Функция Imagick::getImageBorderColor() - Возвращает цвет рамки изображения
- Функция Imagick::getImageChannelDepth() - Gets the depth for a particular image channel
- Функция Imagick::getImageChannelDistortion() - Compares image channels of an image to a reconstructed image
- Функция Imagick::getImageChannelDistortions() - Gets channel distortions
- Функция Imagick::getImageChannelExtrema() - Gets the extrema for one or more image channels
- Функция Imagick::getImageChannelKurtosis() - The getImageChannelKurtosis purpose
- Функция Imagick::getImageChannelMean() - Gets the mean and standard deviation
- Функция Imagick::getImageChannelRange() - Gets channel range
- Функция Imagick::getImageChannelStatistics() - Returns statistics for each channel in the image
- Функция Imagick::getImageClipMask() - Gets image clip mask
- Функция Imagick::getImageColormapColor() - Returns the color of the specified colormap index
- Функция Imagick::getImageColors() - Возвращает число уникальных цветов в изображении
- Функция Imagick::getImageColorspace() - Возвращает цветовую палитру изображения
- Функция Imagick::getImageCompose() - Возвращает составной оператор, связанный с изображением
- Функция Imagick::getImageCompression() - Возвращает текущий тип компрессии изображения
- Функция Imagick::getImageCompressionQuality() - Возвращает текущее качество сжатия изображения
- Функция Imagick::getImageDelay() - Gets the image delay
- Функция Imagick::getImageDepth() - Gets the image depth
- Функция Imagick::getImageDispose() - Gets the image disposal method
- Функция Imagick::getImageDistortion() - Compares an image to a reconstructed image
- Функция Imagick::getImageExtrema() - Gets the extrema for the image
- Функция Imagick::getImageFilename() - Возвращает имя файла конкретного изображения в последовательности
- Функция Imagick::getImageFormat() - Возвращает формат конкретного изображения в последовательности
- Функция Imagick::getImageGamma() - Возвращает гамму изображения
- Функция Imagick::getImageGeometry() - Возвращает ширину и высоту в виде ассоциативного массива
- Функция Imagick::getImageGravity() - Возвращает значение гравитации (притяжения)
- Функция Imagick::getImageGreenPrimary() - Returns the chromaticy green primary point
- Функция Imagick::getImageHeight() - Возвращает высоту изображения
- Функция Imagick::getImageHistogram() - Gets the image histogram
- Функция Imagick::getImageIndex() - Gets the index of the current active image
- Функция Imagick::getImageInterlaceScheme() - Gets the image interlace scheme
- Функция Imagick::getImageInterpolateMethod() - Returns the interpolation method
- Функция Imagick::getImageIterations() - Gets the image iterations
- Функция Imagick::getImageLength() - Returns the image length in bytes
- Функция Imagick::getImageMagickLicense() - Returns a string containing the ImageMagick license
- Функция Imagick::getImageMatte() - Return if the image has a matte channel
- Функция Imagick::getImageMatteColor() - Returns the image matte color
- Imagick::getImageMimeType
- Функция Imagick::getImageOrientation() - Gets the image orientation
- Функция Imagick::getImagePage() - Returns the page geometry
- Функция Imagick::getImagePixelColor() - Returns the color of the specified pixel
- Функция Imagick::getImageProfile() - Returns the named image profile
- Функция Imagick::getImageProfiles() - Returns the image profiles
- Функция Imagick::getImageProperties() - Returns the image properties
- Функция Imagick::getImageProperty() - Returns the named image property
- Функция Imagick::getImageRedPrimary() - Returns the chromaticity red primary point
- Функция Imagick::getImageRegion() - Extracts a region of the image
- Функция Imagick::getImageRenderingIntent() - Gets the image rendering intent
- Функция Imagick::getImageResolution() - Gets the image X and Y resolution
- Функция Imagick::getImagesBlob() - Returns all image sequences as a blob
- Функция Imagick::getImageScene() - Gets the image scene
- Функция Imagick::getImageSignature() - Generates an SHA-256 message digest
- Функция Imagick::getImageSize() - Возвращает размер (длину) изображения в байтах
- Функция Imagick::getImageTicksPerSecond() - Gets the image ticks-per-second
- Функция Imagick::getImageTotalInkDensity() - Gets the image total ink density
- Функция Imagick::getImageType() - Возвращает возможный тип изображения
- Функция Imagick::getImageUnits() - Gets the image units of resolution
- Функция Imagick::getImageVirtualPixelMethod() - Returns the virtual pixel method
- Функция Imagick::getImageWhitePoint() - Returns the chromaticity white point
- Функция Imagick::getImageWidth() - Возвращает ширину изображения
- Функция Imagick::getInterlaceScheme() - Gets the object interlace scheme
- Функция Imagick::getIteratorIndex() - Gets the index of the current active image
- Функция Imagick::getNumberImages() - Returns the number of images in the object
- Функция Imagick::getOption() - Returns a value associated with the specified key
- Функция Imagick::getPackageName() - Returns the ImageMagick package name
- Функция Imagick::getPage() - Returns the page geometry
- Функция Imagick::getPixelIterator() - Returns a MagickPixelIterator
- Функция Imagick::getPixelRegionIterator() - Возвращает объект ImagickPixelIterator для секции изображения
- Функция Imagick::getPointSize() - Возвращает размер точки
- Imagick::getQuantum
- Функция Imagick::getQuantumDepth() - Возвращает величину глубины
- Функция Imagick::getQuantumRange() - Возвращает величину диапазона объекта Imagick
- Imagick::getRegistry
- Функция Imagick::getReleaseDate() - Возвращает дату релиза ImageMagick
- Функция Imagick::getResource() - Возвращает размер используемой памяти указанного ресурса
- Функция Imagick::getResourceLimit() - Возвращает заданный лимит ресурсов
- Функция Imagick::getSamplingFactors() - Возвращает горизонтальный и вертикальный фактор выборки
- Функция Imagick::getSize() - Возвращает размер, связанный с объектом Imagick
- Функция Imagick::getSizeOffset() - Возвращает размер смещения
- Функция Imagick::getVersion() - Возвращает версию API ImageMagick
- Функция Imagick::haldClutImage() - Replaces colors in the image
- Функция Imagick::hasNextImage() - Checks if the object has more images
- Функция Imagick::hasPreviousImage() - Checks if the object has a previous image
- Imagick::identifyFormat
- Функция Imagick::identifyImage() - Identifies an image and fetches attributes
- Функция Imagick::implodeImage() - Creates a new image as a copy
- Функция Imagick::importImagePixels() - Imports image pixels
- Imagick::inverseFourierTransformImage
- Функция Imagick::labelImage() - Adds a label to an image
- Функция Imagick::levelImage() - Adjusts the levels of an image
- Функция Imagick::linearStretchImage() - Stretches with saturation the image intensity
- Функция Imagick::liquidRescaleImage() - Animates an image or images
- Imagick::listRegistry
- Функция Imagick::magnifyImage() - Scales an image proportionally 2x
- Функция Imagick::mapImage() - Replaces the colors of an image with the closest color from a reference image.
- Функция Imagick::matteFloodfillImage() - Changes the transparency value of a color
- Функция Imagick::medianFilterImage() - Applies a digital filter
- Функция Imagick::mergeImageLayers() - Merges image layers
- Функция Imagick::minifyImage() - Scales an image proportionally to half its size
- Функция Imagick::modulateImage() - Control the brightness, saturation, and hue
- Функция Imagick::montageImage() - Creates a composite image
- Функция Imagick::morphImages() - Method morphs a set of images
- Imagick::morphology
- Функция Imagick::mosaicImages() - Forms a mosaic from images
- Функция Imagick::motionBlurImage() - Simulates motion blur
- Функция Imagick::negateImage() - Negates the colors in the reference image
- Функция Imagick::newImage() - Creates a new image
- Функция Imagick::newPseudoImage() - Creates a new image
- Функция Imagick::nextImage() - Moves to the next image
- Функция Imagick::normalizeImage() - Enhances the contrast of a color image
- Функция Imagick::oilPaintImage() - Simulates an oil painting
- Функция Imagick::opaquePaintImage() - Changes the color value of any pixel that matches target
- Функция Imagick::optimizeImageLayers() - Removes repeated portions of images to optimize
- Функция Imagick::orderedPosterizeImage() - Performs an ordered dither
- Функция Imagick::paintFloodfillImage() - Changes the color value of any pixel that matches target
- Функция Imagick::paintOpaqueImage() - Change any pixel that matches color
- Функция Imagick::paintTransparentImage() - Changes any pixel that matches color with the color defined by fill
- Функция Imagick::pingImage() - Fetch basic attributes about the image
- Функция Imagick::pingImageBlob() - Quickly fetch attributes
- Функция Imagick::pingImageFile() - Get basic image attributes in a lightweight manner
- Функция Imagick::polaroidImage() - Simulates a Polaroid picture
- Функция Imagick::posterizeImage() - Reduces the image to a limited number of color level
- Функция Imagick::previewImages() - Quickly pin-point appropriate parameters for image processing
- Функция Imagick::previousImage() - Move to the previous image in the object
- Функция Imagick::profileImage() - Adds or removes a profile from an image
- Функция Imagick::quantizeImage() - Analyzes the colors within a reference image
- Функция Imagick::quantizeImages() - Analyzes the colors within a sequence of images
- Функция Imagick::queryFontMetrics() - Returns an array representing the font metrics
- Функция Imagick::queryFonts() - Returns the configured fonts
- Функция Imagick::queryFormats() - Returns formats supported by Imagick
- Функция Imagick::radialBlurImage() - Radial blurs an image
- Функция Imagick::raiseImage() - Creates a simulated 3d button-like effect
- Функция Imagick::randomThresholdImage() - Creates a high-contrast, two-color image
- Функция Imagick::readImage() - Reads image from filename
- Функция Imagick::readImageBlob() - Reads image from a binary string
- Функция Imagick::readImageFile() - Reads image from open filehandle
- Imagick::readimages
- Функция Imagick::recolorImage() - Recolors image
- Функция Imagick::reduceNoiseImage() - Smooths the contours of an image
- Функция Imagick::remapImage() - Remaps image colors
- Функция Imagick::removeImage() - Removes an image from the image list
- Функция Imagick::removeImageProfile() - Removes the named image profile and returns it
- Функция Imagick::render() - Renders all preceding drawing commands
- Функция Imagick::resampleImage() - Resample image to desired resolution
- Функция Imagick::resetImagePage() - Reset image page
- Функция Imagick::resizeImage() - Scales an image
- Функция Imagick::rollImage() - Offsets an image
- Функция Imagick::rotateImage() - Rotates an image
- Imagick::rotationalBlurImage
- Функция Imagick::roundCorners() - Rounds image corners
- Функция Imagick::sampleImage() - Scales an image with pixel sampling
- Функция Imagick::scaleImage() - Scales the size of an image
- Функция Imagick::segmentImage() - Segments an image
- Imagick::selectiveBlurImage
- Функция Imagick::separateImageChannel() - Separates a channel from the image
- Функция Imagick::sepiaToneImage() - Sepia tones an image
- Функция Imagick::setBackgroundColor() - Sets the object's default background color
- Функция Imagick::setColorspace() - Set colorspace
- Функция Imagick::setCompression() - Sets the object's default compression type
- Функция Imagick::setCompressionQuality() - Sets the object's default compression quality
- Функция Imagick::setFilename() - Sets the filename before you read or write the image
- Функция Imagick::setFirstIterator() - Sets the Imagick iterator to the first image
- Функция Imagick::setFont() - Sets font
- Функция Imagick::setFormat() - Sets the format of the Imagick object
- Функция Imagick::setGravity() - Sets the gravity
- Функция Imagick::setImage() - Replaces image in the object
- Функция Imagick::setImageAlphaChannel() - Sets image alpha channel
- Функция Imagick::setImageArtifact() - Set image artifact
- Imagick::setImageAttribute
- Функция Imagick::setImageBackgroundColor() - Sets the image background color
- Функция Imagick::setImageBias() - Sets the image bias for any method that convolves an image
- Imagick::setImageBiasQuantum
- Функция Imagick::setImageBluePrimary() - Sets the image chromaticity blue primary point
- Функция Imagick::setImageBorderColor() - Sets the image border color
- Функция Imagick::setImageChannelDepth() - Sets the depth of a particular image channel
- Функция Imagick::setImageClipMask() - Sets image clip mask
- Функция Imagick::setImageColormapColor() - Sets the color of the specified colormap index
- Функция Imagick::setImageColorspace() - Sets the image colorspace
- Функция Imagick::setImageCompose() - Sets the image composite operator
- Функция Imagick::setImageCompression() - Sets the image compression
- Функция Imagick::setImageCompressionQuality() - Sets the image compression quality
- Функция Imagick::setImageDelay() - Sets the image delay
- Функция Imagick::setImageDepth() - Sets the image depth
- Функция Imagick::setImageDispose() - Sets the image disposal method
- Функция Imagick::setImageExtent() - Sets the image size
- Функция Imagick::setImageFilename() - Sets the filename of a particular image
- Функция Imagick::setImageFormat() - Sets the format of a particular image
- Функция Imagick::setImageGamma() - Sets the image gamma
- Функция Imagick::setImageGravity() - Sets the image gravity
- Функция Imagick::setImageGreenPrimary() - Sets the image chromaticity green primary point
- Функция Imagick::setImageIndex() - Set the iterator position
- Функция Imagick::setImageInterlaceScheme() - Sets the image compression
- Функция Imagick::setImageInterpolateMethod() - Sets the image interpolate pixel method
- Функция Imagick::setImageIterations() - Sets the image iterations
- Функция Imagick::setImageMatte() - Sets the image matte channel
- Функция Imagick::setImageMatteColor() - Sets the image matte color
- Функция Imagick::setImageOpacity() - Sets the image opacity level
- Функция Imagick::setImageOrientation() - Sets the image orientation
- Функция Imagick::setImagePage() - Sets the page geometry of the image
- Функция Imagick::setImageProfile() - Adds a named profile to the Imagick object
- Функция Imagick::setImageProperty() - Sets an image property
- Функция Imagick::setImageRedPrimary() - Sets the image chromaticity red primary point
- Функция Imagick::setImageRenderingIntent() - Sets the image rendering intent
- Функция Imagick::setImageResolution() - Sets the image resolution
- Функция Imagick::setImageScene() - Sets the image scene
- Функция Imagick::setImageTicksPerSecond() - Sets the image ticks-per-second
- Функция Imagick::setImageType() - Sets the image type
- Функция Imagick::setImageUnits() - Sets the image units of resolution
- Функция Imagick::setImageVirtualPixelMethod() - Sets the image virtual pixel method
- Функция Imagick::setImageWhitePoint() - Sets the image chromaticity white point
- Функция Imagick::setInterlaceScheme() - Sets the image compression
- Функция Imagick::setIteratorIndex() - Set the iterator position
- Функция Imagick::setLastIterator() - Sets the Imagick iterator to the last image
- Функция Imagick::setOption() - Set an option
- Функция Imagick::setPage() - Sets the page geometry of the Imagick object
- Функция Imagick::setPointSize() - Sets point size
- Imagick::setProgressMonitor
- Imagick::setRegistry
- Функция Imagick::setResolution() - Sets the image resolution
- Функция Imagick::setResourceLimit() - Sets the limit for a particular resource in megabytes
- Функция Imagick::setSamplingFactors() - Sets the image sampling factors
- Функция Imagick::setSize() - Sets the size of the Imagick object
- Функция Imagick::setSizeOffset() - Sets the size and offset of the Imagick object
- Функция Imagick::setType() - Sets the image type attribute
- Функция Imagick::shadeImage() - Creates a 3D effect
- Функция Imagick::shadowImage() - Simulates an image shadow
- Функция Imagick::sharpenImage() - Sharpens an image
- Функция Imagick::shaveImage() - Shaves pixels from the image edges
- Функция Imagick::shearImage() - Creating a parallelogram
- Функция Imagick::sigmoidalContrastImage() - Adjusts the contrast of an image
- Функция Imagick::sketchImage() - Simulates a pencil sketch
- Imagick::smushImages
- Функция Imagick::solarizeImage() - Applies a solarizing effect to the image
- Функция Imagick::sparseColorImage() - Interpolates colors
- Функция Imagick::spliceImage() - Splices a solid color into the image
- Функция Imagick::spreadImage() - Randomly displaces each pixel in a block
- Imagick::statisticImage
- Функция Imagick::steganoImage() - Hides a digital watermark within the image
- Функция Imagick::stereoImage() - Composites two images
- Функция Imagick::stripImage() - Strips an image of all profiles and comments
- Imagick::subImageMatch
- Функция Imagick::swirlImage() - Swirls the pixels about the center of the image
- Функция Imagick::textureImage() - Repeatedly tiles the texture image
- Функция Imagick::thresholdImage() - Изменяет отдельные пиксели на основе порогового значения
- Функция Imagick::thumbnailImage() - Changes the size of an image
- Функция Imagick::tintImage() - Applies a color vector to each pixel in the image
- Imagick::__toString
- Функция Imagick::transformImage() - Convenience method for setting crop size and the image geometry
- Imagick::transformImageColorspace
- Функция Imagick::transparentPaintImage() - Paints pixels transparent
- Функция Imagick::transposeImage() - Creates a vertical mirror image
- Функция Imagick::transverseImage() - Creates a horizontal mirror image
- Функция Imagick::trimImage() - Remove edges from the image
- Функция Imagick::uniqueImageColors() - Discards all but one of any pixel color
- Функция Imagick::unsharpMaskImage() - Sharpens an image
- Функция Imagick::valid() - Checks if the current item is valid
- Функция Imagick::vignetteImage() - Adds vignette filter to the image
- Функция Imagick::waveImage() - Applies wave filter to the image
- Функция Imagick::whiteThresholdImage() - Force all pixels above the threshold into white
- Функция Imagick::writeImage() - Writes an image to the specified filename
- Функция Imagick::writeImageFile() - Writes an image to a filehandle
- Функция Imagick::writeImages() - Writes an image or image sequence
- Функция Imagick::writeImagesFile() - Writes frames to a filehandle
Коментарии
You can use this to center a text within a box
<?php
$data = "Hello world";
$text = new ImagickDraw();
$text->setFontSize(12);
$text->setFont("Arial");
$boxWidth = 210;
$im = new Imagick();
$fm = $im->queryFontMetrics($text, $data, false);
$textXLoc = ($boxWidth / 2) - ($fm["textWidth"] / 2);
?>
$textXLoc is now the starting location you need to use to feed to your annotateImage() function.
You can also use $imagickDraw()->setTextAlignmnent(Imagick::ALIGN_CENTER) and $imagickDraw->annotation(..) instead.
Up to and including imagick 3.0.1, queryfontmetrics would output size data based on an image resolution of 72x72. (see bug: http://pecl.php.net/bugs/bug.php?id=19907)
Should you have set a resolution other than this and be using 3.0.1 or below, you need to scale measurements up by a factor of YOUR_RESOLUTION / 72
e.g. assuming you've set a resolution of 300
<?php
$im = new Imagick();
$im->setResolution(300,300);
$draw = new ImagickDraw();
$draw->setFont('/path/to/arial.ttf');
$draw->setFontSize(72 * (300 / 72));
$data = $im->queryfontmetrics($draw, 'hello world');
var_dump($data);
?>
In 3.0.2 and above, the solution is to set the resolution on the draw object to that of the image resolution
<?php
$im = new Imagick();
$im->setResolution(300,300);
$draw = new ImagickDraw();
$draw->setResolution(300,300);
$draw->setFont('/path/to/arial.ttf');
$draw->setFontSize(72);
$draw->setFillColor('#ff0000');
$data = $im->queryFontMetrics($draw, $string);
var_dump($data);
?>
The following fields constitute my current PHP 5.2.1/Imagick 6.5.1 queryFontMetrics() return array (once setFontSize() and setFont() have been set):
characterWidth: maximum character ("em") width
characterHeight: maximum character height
ascender: the height of character ascensions (i.e. the straight bit on a 'b')
descender: the height of character descensions (i.e. the straight bit on a 'p')
textWidth: width of drawn text in pixels
textHeight: height of drawn text in pixels
maxHorizontalAdvance: maximum pixels from start of one character to start of the next
boundingBox: array of x1, y1, x2, y2 bounding borders
originX, originY: ?
originX seems to shadow the textWidth field, and originY has been zero thus far in my exploration.
If you're looking to center text or locate it at an edge, though, use ImagickDraw::setGravity(int $gravity), where $gravity is one of the following constants:
Imagick::GRAVITY_NORTHWEST
Imagick::GRAVITY_NORTH
Imagick::GRAVITY_NORTHEAST
Imagick::GRAVITY_WEST
Imagick::GRAVITY_CENTER
Imagick::GRAVITY_EAST
Imagick::GRAVITY_SOUTHWEST
Imagick::GRAVITY_SOUTH
Imagick::GRAVITY_SOUTHEAST
Using setGravity() is far less finicky for the simpler tasks.
This script will print a watermark on the middle of an image. The width of the watermark will depend on the width of the image.
<?php
// Create a new Imagick object
$objImage = new Imagick( 'path/to/image.jpg' );
// Get the width and height of the image
$imgSize = $objImage->getImageGeometry();
$imgWidth = $imgSize['width'];
$imgHeight = $imgSize['height'];
// Create a new text object
$objText = new ImagickDraw();
// Set te text color
$objText->setFillColor( new ImagickPixel('grey') );
// Set the text transparency: 0 = transparent, 1 = opaque
$objText->setFillAlpha( 0.2 );
// Top left will be point of reference
$objText->setGravity( Imagick::GRAVITY_NORTHWEST );
// Create an array for the textwidth and textheight
$textProperties = array( 'textWidth' => 0 );
// Set the desired width of the watermark to 90% of the image width
$textDesiredWidth = intval( $imgWidth * 0.9 );
// Set an initial value for the fontsize, will be increased in the loop below
$fontSize = 0;
// We use the domain name of the server for the watermark text
$text = $_SERVER['SERVER_NAME'];
// Increase the fontsize until we have reached our desired width
while ( $textProperties['textWidth'] <= $textDesiredWidth ) {
$objText->setFontSize( $fontSize );
$textProperties = $objImage->queryFontMetrics( $objText, $text );
$fontSize++;
}
// Calculate the horizontal starting position
$watermarkPosX = intval( ($imgWidth - $textProperties['textWidth']) / 2 );
// Calculate the vertical starting position
$watermarkPosY = floor( ($imgHeight - $textProperties['textHeight']) / 2 );
// Composite the text on the image
$objImage->annotateImage( $objText, $watermarkPosX, $watermarkPosY, 0, $text );
// The browser must know this is JPEG image or else it will display garbled text
header( 'Content-Type: image/jpeg' );
// Display the image
echo $objImage;
?>
Example output from queryFontMetrics:
Array
(
[characterWidth] => 9
[characterHeight] => 9
[ascender] => 9
[descender] => -2
[textWidth] => 71
[textHeight] => 10
[maxHorizontalAdvance] => 12
[boundingBox] => Array
(
[x1] => 0
[y1] => -2
[x2] => 6.890625
[y2] => 7
)
[originX] => 70
[originY] => 0
)
The values do not match the array descriptors at all. If you have to know exactly how much space is being taken up by an annotation, use the following:
<?php
$text = "Algbqdj";
$im = new Imagick ();
$draw = new ImagickDraw ();
$draw->setStrokeColor ("none");
$draw->setFont ("Arial");
$draw->setFontSize (96);
$draw->setTextAlignment (Imagick::ALIGN_LEFT);
$metrics = $im->queryFontMetrics ($draw, $text);
//these are the values which accurately described the extent of the text and where it is to be drawn:
$baseline = $metrics['boundingBox']['y2'];
$textwidth = $metrics['textWidth'] + 2 * $metrics['boundingBox']['x1'];
$textheight = $metrics['textHeight'] + $metrics['descender'];
$draw->annotation (0, $baseline, $text);
$im->newImage ($textwidth, $textheight, "white");
$im->drawImage ($draw);
$draw->clear ();
$im->writeImage ("test.png");
$im->clear ();
?>
The file test.png should now contain pretty much the complete text with no borders. This may not work for very unusual fonts, but will work OK for Times New Roman and Arial.
Having spent quite a bit of time looking at these values for various fonts, this is my understanding of the values given by the fontMetrics function. I am using php 5.3 and ImageMagick 6.5.4-7 on Centos 6.5.
characterWidth and characterHeight
- These seem to be related to the size you have specified for the font and don't seem to differ from font to font (at the same size). As such, they are not especially useful (to me, at least). They are not a reliable indicator of how much space the font will use.
ascender
- The ascender is the part of the font that is above the baseline. It is not character related - the ascender value is the same for every character in the font.
descender
- The descender is the part of the font that is below the baseline. It is represented as a negative figure. Adding the absolute values of the ascender and the descender gives you the...
textHeight
- This is the total height available to the font. It is the same for every character in the font irrespective of its case or how much space the character seems to occupy. This can be used to determined the line height when outputting paragraphs, etc.
textWidth
- This value varies from character to character and is the width of the character. This is useful if the boundingBox does not provide usable values (see boundingBox below). When positioning characters one by one - don't use textWidth, use originX (see below).
maxHorizontalAdvance
- I'm afraid I haven't quite figured out the purpose of this. It is the same for every character in the font. For the font Arial Italic at size 67, the value is 89 which is much wider than the advance reported for the M or the W at the same size.
boundingBox
- This returns an associative array describing the four points (x1, y1, x2, y2) of a rectangle that contain the character. These values are relative to the origin (i.e. the coordinates of where you are drawing the character within an image). The returned rectangle is very accurate and encloses all parts of the printed character completely - but the boundingBox only works on single characters. It will not give accurate figures for multiple characters (in my experience anyway). When drawing a box you need to ADD "x" values to the origin and SUBTRACT "y" values from the origin. You cannot rely on the boundingBox for the SPACE character. It returns a boundingBox of (0,0,0,0). textWidth (see above) comes in handy here.
originX and originY
- these are inaccurately titled. The values returned in originX and originY are actually advanceX and advanceY. These values give you the position of the next character relative to the current one.
I hope this is useful.