See
PublishedAPI for packages intended to be used by Plugin and Contrib authors, or
browse all packages.
See also
Developing plugins,
Developer's Bible,
Technical Overview
internal package Foswiki::Plugins::ImagePlugin::Core
Core class for the image service. A singleton instance is created by
Foswiki::Plugins::ImagePlugin::getCore()
ClassMethod new($session) → $core
constructor
ObjectMethod cache() → $chiCache
returns a cache object. See
Foswiki::Contrib::CacheContrib::getCache()
ObjectMethod json() → $json
returns a JSON object
converts the given key-value pair into a proper HTML5 data attribute
ObjectMethod mage() → $imageMagick
returns a cached Image::Magick object. Note that this class maintains an
image magick object using this methid used for the bulk of operations.
Additional uncached Image::Magick object can be created using
createImage().
ObjectMethod createImage() → $imageMagick
allocates a new Image::Magick object. Make sure you deallocate it on your own
ObjectMethod filter() → $filterService
returns a cached filter object. See
Foswiki::Plugins::ImagePlugin::Filter.
ObjectMethod finishPlugin()
deallocates all delegates cached within this core object, i.e. cache, image magick, json
and filter objects.
It also clears any outdated thumbnails left behind by image operations.
ObjectMethod handleREST($subject, $verb, $response) → $result
impements the
process REST handler. available url parameters:
- web
- topic
- file
- refresh
- size
- zoom
- width
- height
- filter
- rotate
- transparent
- quality
- output
ObjectMethod handleIMAGE($paramas, $topic, $web) → $result
impements the
%IMAGE macro
This is a convenience method that tries to mimik image parameters as in
MediaWiki. So instead of using individual parameters to the
%IMAGE macro
- type (link,frame,thumb)
- file
- width
- height
- size and
- caption
caption are extracted from the
%IMAGE default parameter.
ObjectMethod pingImage($imgInfo) → ($width, $height)
returns geometry info for the given info record. The
$imgInfo parameter
is a has reference that is enriched with the found width and height so
that this method is safe to be called multiple times on the same image
thus caching results within the
$imgInfo record.
It processes the image in
results are cached in
ObjectMethod pingOrigImage($imgInfo) → ($width, $height, $fileSize)
same as
pingImage() but adding infos about the original image. results are cached in
It processes the image in
and stores results in
ObjectMethod ping($path) → ($width, $height)
reads image information for a file at
$path. Note that other than the two above
methods
pingImage() and
pingOrigImage() results are
not cached whatsoever.
ObjectMethod processImage($web, $topic, $file, $params, $doRefresh) → $imgInfo
This is the central method that processes image within this core. It calculates
the derived image or thumbnail based on the parameters given. The name of the resulting image file
encodes information about the parameters being used to compute it encoded in md5. So this
method will look out for an existing target and will only compute it if it doesn't exist yet
or the boolean flag
$doRefresh has been specified.
The
$params hash may contain the following properties:
- crop
- filter
- frame or layer
- height
- output
- quality
- rotate
- size
- transparent
- type
- width
- zoom
Note that any
filter parameter will be delegated to the Filter service at
Foswiki::Plugins::ImagePlugin::Filter
ObjectMethod afterSaveHandler(undef, $topic, $web, $error, $meta)
extracts inline data images if configured so in the
AutoAttachInlineImages
setting of the plugin
Extracts any inline data images within
$text and returns the number of images
found. These will be attached to an existing
$meta object.
Note that
$text is modified in place, replacing any found data with an appropriate
markup to render the newly attached image. See the
InlineImageTemplate plugin configuration.
ObjectMethod afterRenameHandler($oldWeb, $oldTopic, $oldAttachment, $newWeb, $newTopic, $newAttachment)
afterRename operations: flags old thumbnails as deleteable.
ObjectMethod flagThumbsForDeletion($web, $topic, $attachment)
This method reads all thumbnails on the given web.topic. These are the
igp_md5...
files which are then renamed by prepending the filename with an underscore (_).
If this thumbnail has to be recomputed yet again, it is re-renamed removing the underscore
again. Any
_igp_md5... files left are considered old and are deleted later on.
ObjectMethod clearAllThumbs($web, $topic, $attachment)
deletes all thumbnail files at the given web.topic, those named
igp_md5...
ObjectMethod clearOutdatedThumbs($web, $topic, $attachment)
deletes all outdated thumbnail files at the given web.topic, those named
_igp_md5....
Note the underscore infront of the name.
ObjectMethod clearMatchingThumbs($web, $topic, $attachment, $pattern)
delets all thumbnails for a given pattern
ObjectMethod takeOutSVG($text)
takes out all inline SVG files. Note that
$text is modified in place.
ObjectMethod processInlineSvg($data) → $markup
processes any SVG file encoded in
$data found by
takeOutSVG(), attaches them to the current topic
and returns appropriate markup to render it otherwise.
ObjectMethod inlineError($params)
creates an inline html alert message using the
errorMsg property
of this class. Warnings may be suppressed if
$params->{warn} is
switched off.
ObjectMethod mirrorImage($web, $topic, $url, $fileName, $force)
Downloads and mirrors an image and attach it to the given web.topic turns true
on success. On false the
errorMsg property is set.
ObjectMethod getImageFile($web, $topic, $topic, $params) → $fileName
returns an
igp_md5... image name for the thumbnail to be processed based on the
$params.
ObjectMethod updateAttachment($web, $topic, $fileName, $params)
saves the given file as an attachment to the web.topic
See
Foswiki::Func::saveAttachment()
ObjectMethod getTemplate($name) → $tmpl
loads the named foswiki template or the default template "imageplugin".
results are cached for performance reasons
ObjectMethod readMimeTypes() → $types
reads and caches the content of the
MimeTypesFileName.
ObjectMethod mimeTypeToSuffix($mimeType) → $suffix
derives the appropriate file suffix for a given mime type
ObjectMethod suffixToMimeType($suffix) → $mimeType
returns the matching mime type for a given file extension