mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-03 05:09:28 +00:00
158 lines
5.5 KiB
HTML
158 lines
5.5 KiB
HTML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="generator" content="Docutils 0.3.5: http://docutils.sourceforge.net/" />
|
|
<title>eZ publish Enterprise Component: ImageConversion, Design</title>
|
|
<link rel="stylesheet" href="default.css" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<h1 class="title">eZ publish Enterprise Component: ImageConversion, Design</h1>
|
|
<div class="document" id="ez-publish-enterprise-component-imageconversion-design">
|
|
<div class="section" id="introduction">
|
|
<h1><a name="introduction">Introduction</a></h1>
|
|
<p>Find more info about the requirenments on which this design is based on in the
|
|
requirenments.txt.</p>
|
|
</div>
|
|
<div class="section" id="design-description">
|
|
<h1><a name="design-description">Design description</a></h1>
|
|
<div class="section" id="ezcimagemanager">
|
|
<h2><a name="ezcimagemanager">ezcImageManager</a></h2>
|
|
<p>The main class of the component is the ezcImageManager, which implements a
|
|
singleton pattern, because only 1 manager is needed for all actions performed.
|
|
The ezcImageManager dispatches the actions performed on images, holds the
|
|
ezcImageHandler's (which actually perform the actions) and manages / defines
|
|
the ezcImageTransformations which hold conversions and ezcImageFilter's.</p>
|
|
<p>Since 1 filter/conversion can be performed by several ezcImageHandler's, the
|
|
manager has a preference list, to determine, which ezcImageHandler to take for
|
|
a conversion.</p>
|
|
</div>
|
|
<div class="section" id="ezcimagehandler">
|
|
<h2><a name="ezcimagehandler">ezcImageHandler</a></h2>
|
|
<p>This interface defines how the abstraction class for an image handler looks
|
|
like. ezcImageHandler's utilize a given backend to perform conversion and
|
|
filtering (using ezcImageFilter's). A ezcImageHandler knows by hisself, which
|
|
filters he implements. The manager will ask it for supported filters to get an
|
|
overview, which filters exist.</p>
|
|
<p>To avoid reopening an image file for every operation the ezcImageHandler has
|
|
load()/save() methods. An image must be saved before another ezcImageHandler
|
|
can perform his actions on it.</p>
|
|
</div>
|
|
<div class="section" id="ezcimagefilter">
|
|
<h2><a name="ezcimagefilter">ezcImageFilter</a></h2>
|
|
<p>This class implements a storage container for filters to keep them better
|
|
consistant than an array could do. Filters are created by the ezcImageManager
|
|
or directly through a ezcImageHandler. An ezcImageFilter knows, to which
|
|
handler he belongs and dispatches itself to the right handler, when applied.</p>
|
|
</div>
|
|
<div class="section" id="ezcimagetransformation">
|
|
<h2><a name="ezcimagetransformation">ezcImageTransformation</a></h2>
|
|
<p>ezcImageTransformation's abstract MIME types to allow the easy combination of
|
|
conversions and filters which are necessary to get a desired image type.
|
|
For conversions only the target MIME type is necessary. Beside that,
|
|
ezcImageTransformation's have a reference, which either points to another ezcImageTransformation
|
|
or to the special reference __original__ which is the image itself.</p>
|
|
<p>If a ezcImageTransformation references another one, which does not exist, yet, it will
|
|
be created, too. This enables one to create a chain of ezcImageTransformation's which
|
|
will be processed.</p>
|
|
<p>ezcImageTransformation's will be created on the fly, when the user requests them and not
|
|
during startup of the manager. A created ezcImageTransformation will be cached in the
|
|
manager for possible later use. Same applies to the filters utilized by the
|
|
ezcImageTransformation.</p>
|
|
<div class="section" id="example-1">
|
|
<h3><a name="example-1">Example 1</a></h3>
|
|
<table border="1" class="table">
|
|
<colgroup>
|
|
<col width="49%" />
|
|
<col width="51%" />
|
|
</colgroup>
|
|
<tbody valign="top">
|
|
<tr><td>Transformation:</td>
|
|
<td>Preview</td>
|
|
</tr>
|
|
<tr><td>Reference:</td>
|
|
<td>__original__</td>
|
|
</tr>
|
|
<tr><td>MIME:</td>
|
|
<td><p class="first">image/JPEG</p>
|
|
<p class="last">image/PNG</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td>Filters:</td>
|
|
<td>scale 400x400</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="example-2">
|
|
<h3><a name="example-2">Example 2</a></h3>
|
|
<table border="1" class="table">
|
|
<colgroup>
|
|
<col width="49%" />
|
|
<col width="51%" />
|
|
</colgroup>
|
|
<tbody valign="top">
|
|
<tr><td>Transformation:</td>
|
|
<td>Thumbnail</td>
|
|
</tr>
|
|
<tr><td>Reference:</td>
|
|
<td>Preview</td>
|
|
</tr>
|
|
<tr><td>MIME:</td>
|
|
<td><p class="first">image/JPEG</p>
|
|
<p class="last">image/PNG</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td>Filters:</td>
|
|
<td><p class="first">scale 100x100</p>
|
|
<p class="last">colorspace grey</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Will scale down the image to 100x100 pixels and convert it to greyscale.</p>
|
|
</div>
|
|
<div class="section" id="example-3">
|
|
<h3><a name="example-3">Example 3</a></h3>
|
|
<table border="1" class="table">
|
|
<colgroup>
|
|
<col width="49%" />
|
|
<col width="51%" />
|
|
</colgroup>
|
|
<tbody valign="top">
|
|
<tr><td>Transformation:</td>
|
|
<td>OldPhotos</td>
|
|
</tr>
|
|
<tr><td>Reference:</td>
|
|
<td>original</td>
|
|
</tr>
|
|
<tr><td>MIME:</td>
|
|
<td>image/JPEG</td>
|
|
</tr>
|
|
<tr><td>Filters:</td>
|
|
<td><p class="first">colorspace grey</p>
|
|
<p class="last">border 3</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Will convert the inserted image to image/JPEG, reduce the colorspace to
|
|
greyscale and add a border of 3 pixel.</p>
|
|
<div class="section" id="l">
|
|
<h4><a name="l">^L</a></h4>
|
|
<p>Local Variables:
|
|
mode: rst
|
|
indent-tabs-mode: nil
|
|
sentence-end-double-space: t
|
|
fill-column: 70
|
|
End:
|
|
vim: et syn=rst tw=78 wrap</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|