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