The main objective of this extension is to preserve the important message associated with the image, by providing the user a way to add the focus area for the image. Images are being made responsive with the help of this extension. This extension is supported by the media-action plugin and the content plugin.
== Introduction == <!--T:2-->
</translate>
<translate><!--T:3--> The main objective of this extension is to preserve the important message associated with the image, by providing the user a way to add the focus area for the image. Images are being made responsive with the help of this extension. This extension is supported by the media-action plugin and the content plugin.</translate>
==Features==
<translate>
* Provided a focus editor for taking in the focus information from the author, in a more intuitive manner.
* Auto-Cropping of the images according to the viewport of the client device.
* The cropping is done around the focus area selected by the author.
* Author can select particular widths for which the images need to be cropped.
* Author can select different focus for different devices.
* Author can also remove all the resized images and the previous set focus points for a particular image from the focus editor.
* If an author deletes the original image from the media manager, its resized image and the focus points would be deleted too.
'''''Note: ''''' To Enable this Extention, Administrator has to enable two plugins from the plugin's extension manager:
==Features== <!--T:4-->
# Media-Action: Smart Crop Plugin
</translate>
# Content: Adaptive Image Plugin
* <translate><!--T:5--> Provides an editor for showing different crops of an image based on viewport size. This plugin takes the information from the author, in a more intuitive manner.</translate>
* <translate><!--T:6--> Auto-Crops images according to the viewport of the client device.</translate>
* <translate><!--T:7--> The cropping is around the focus area selected by the author.</translate>
* <translate><!--T:8--> The author can select widths for which the images need to be cropped.</translate>
* <translate><!--T:9--> The author can select different focus for different devices.</translate>
* <translate><!--T:10--> The author can remove all the resized images and the previously set focus points for a particular image from within the focus editor.</translate>
* <translate><!--T:11--> If an author deletes the original image from the media manager, its resized image and the focus points are deleted too.</translate>
==How to set focus points for a particular image?==
<translate><!--T:12--> '''''Note: ''''' To Enable this Extension, the administrator has to enable two plugins from the plugin's extension manager:</translate>
<translate><!--T:13-->
# Media-Action: Focus Plugin
# Content: Adaptive Image Plugin</translate>
# Go to the Media Manager, locate the image you want to add focus points to.
<translate>
# Edit that image, you would be redirected to the new window, go to Smart Crop tab.
===Cropped Images=== <!--T:14-->
# Now Select the focus area of the image, with the help of editor provided.
</translate>
# After setting up the area, Save and Close the editor, you would be redirected back to the media manager.
[[File:Original Image.png|center|Original image with focus area|800px]]
# Now just add that image normally to your article. ''Bash...!! Your image got responsive while preserving the important section of that image.''
[[File:Resized Images.png|center|Resized Images for focus area mentioned]]
==Adding Multiple Focus==
<translate>
==How to set focus points for a particular image?== <!--T:15-->
</translate>
# <translate><!--T:16--> Go to the Media Manager, locate the image you want to add focus points to.</translate>{{-}}[[File: NMM edit images-<translate><!--T:17--> en</translate>.png|center|800px]]
# <translate><!--T:18--> Edit that image. You will be redirected to the new window. Go to Focus tab.</translate>{{-}}[[File:Edit image-<translate><!--T:19--> en</translate>.png|center|800px]]
# <translate><!--T:20--> Now Select the focus area of the image with the help of editor provided.</translate>{{-}}[[File: Focus Tab-<translate><!--T:21--> en</translate>.png | center|800px]]
# <translate><!--T:22--> After setting up the area, ''Save and Close'' the editor. You will be redirected back to the Media Manager.</translate>{{-}}[[File:Parameters-<translate><!--T:23--> en</translate>.png|center|800px]]
# <translate><!--T:24--> Now just add that image normally to your article. ''Bosh...!! Your image is responsive while preserving the important section of that image.''</translate>
# Follow the basic step to set the initial focus points.
<translate>
# Now in the upper right corner of the plugin you will find a drop-down menu with different widths mentioned.
==Adding Multiple Focus== <!--T:25-->
# Select a width and then select its focus point in the focus editor.
</translate>
# Save and close the tab.
# <translate><!--T:26--> Follow the basic steps to set the initial focus points.</translate>
# <translate><!--T:27--> In the upper right corner of the plugin, find a drop-down menu with different widths displayed.</translate>{{-}}[[File:Different Focus-<translate><!--T:28--> en</translate>.png|center|800px]]
# <translate><!--T:29--> Select a width and then select its focus point in the focus editor.</translate>
# <translate><!--T:30--> ''Save & Close'' the tab.</translate>
==Modifying the sizes for the resized images==
<translate>
==Adding Custom Widths== <!--T:31-->
</translate>
# <translate><!--T:32--> Go to plugin's extension manager. Look for ''Media-Action Focus''.</translate>{{-}} [[File:Plugin extension manager-<translate><!--T:33--> en</translate>.png|center|800px]]
# <translate><!--T:34--> Add the new widths here and save the plugin.</translate>{{-}}[[File:Add Widths-en.png|center|800px]]{{-}}[[File:Enter Widths-<translate><!--T:35--> en</translate>.png|center|800px]]
# <translate><!--T:36--> You will notice those widths in the ''Focus'' tab.</translate>{{-}}[[File: Custom widths-<translate><!--T:37--> en</translate>.png|center|800px]]
==Deleting the previous set focus point==
<translate>
==Deleting the Previously-Set Focus Point== <!--T:38-->
</translate>
<translate><!--T:39--> '''Note ''' This will delete all previously saved focus and resized images of the original image generated by the plugin.</translate>
# <translate><!--T:40--> Go to the ''Focus tab''' in ''Edit Image''.</translate>
# <translate><!--T:41--> In the lower right of the screen there is a delete focus button.</translate>
# <translate><!--T:42--> After deleting the previous focus, reload the page or hit ''Cancel'' to go back to the Media Manager</translate>
<translate><!--T:45--> This Extension consists of two independent plugins.</translate>
<translate>
===Focus Plugin=== <!--T:46-->
</translate>
<translate><!--T:47--> This is a Media Action plugin. It provides the user interface for managing the focus points. It takes in the focus points from the user and saves it into the file storage by sending an AJAX request to the controller ''AdaptiveImageController.php''. When satisfied with the focus, select ''Save and Close'' which raises another AJAX request. This time new images are generated with an efficient algorithm and saved in the directory ''/media/focus''. The nomenclature of resized images is ''(resize image width)_(base64 encoded full path of the image).''</translate>
<translate>
===Adaptive Image Plugin=== <!--T:48-->
</translate>
<translate><!--T:49--> This is a Content plugin. If the focus of a particular image is being set in the currently opened article, this plugin will add the ''<picture>'' element to that image and all the associated resized images will be appended to it from ''/media/focus/''. This plugin will also delete all the resized images if the original image is not found (or deleted).</translate>
<translate>
==Extending Extension== <!--T:50-->
</translate>
<translate>
===Changing Storage for Focus Points=== <!--T:51-->
</translate>
<translate><!--T:52--> The focus area is saved in JSON format in the file storage (''JSONFocusStore'' Driver). This can be changed to any other storage by making a new driver class into ''Joomla\CMS\AdaptiveImage\''. The driver class should implement the ''Joomla\CMS\AdaptiveImage\FocusStoreInterface' interface.</translate>
<translate><!--T:53--> The ''JSONFocusStore'' driver class is implementing ''Joomla\CMS\AdaptiveImage\FocusStoreInterface''. ''FocusStoreInterface'' has the following methods declared:</translate>
1.''setFocus($dataFocus, $width, $imgSrc)''
: <translate><!--T:54--> This method stores/updates the focus area.</translate>
:* <translate><!--T:55--> ''$dataFocus'' has the dimensions of the focus area. It is an array with keys ''box-left'', ''box-top'', ''box-width'', ''box-height''.</translate>
:* <translate><!--T:56--> ''$width'' is the size of image for which the focus area is being stored.</translate>
:* <translate><!--T:57--> ''$imgSrc'' is the full path of the image corresponding to the focus area.</translate>
2. ''getFocus($imgSrc, $width)''
: <translate><!--T:58--> This method returns all the focus area associated with the image</translate>
:* <translate><!--T:59--> ''$imgSrc'' is the full path of the image corresponding to the focus area.</translate>
:* <translate><!--T:60--> ''$width(optional)'' If the user want to take in the value of focus area for particular width, it may be mentioned.</translate>
3. ''deleteFocus($imgSrc)''
: <translate><!--T:61--> This method deletes all the focus associated with the image.</translate>
:* <translate><!--T:62--> ''$imgSrc'' is the full path of the image corresponding to the focus area.</translate>
<noinclude>
<noinclude>
[[Category:Google Summer of Code 2018]]
[[Category:Google Summer of Code 2018{{#translation:}}]]
The main objective of this extension is to preserve the important message associated with the image, by providing the user a way to add the focus area for the image. Images are being made responsive with the help of this extension. This extension is supported by the media-action plugin and the content plugin.
Features
Provides an editor for showing different crops of an image based on viewport size. This plugin takes the information from the author, in a more intuitive manner.
Auto-Crops images according to the viewport of the client device.
The cropping is around the focus area selected by the author.
The author can select widths for which the images need to be cropped.
The author can select different focus for different devices.
The author can remove all the resized images and the previously set focus points for a particular image from within the focus editor.
If an author deletes the original image from the media manager, its resized image and the focus points are deleted too.
Note: To Enable this Extension, the administrator has to enable two plugins from the plugin's extension manager:
Media-Action: Focus Plugin
Content: Adaptive Image Plugin
Cropped Images
Original image with focus areaResized Images for focus area mentioned
How to set focus points for a particular image?
Go to the Media Manager, locate the image you want to add focus points to.
Edit that image. You will be redirected to the new window. Go to Focus tab.
Now Select the focus area of the image with the help of editor provided.File:Focus Tab-en.png
After setting up the area, Save and Close the editor. You will be redirected back to the Media Manager.
Now just add that image normally to your article. Bosh...!! Your image is responsive while preserving the important section of that image.
Adding Multiple Focus
Follow the basic steps to set the initial focus points.
In the upper right corner of the plugin, find a drop-down menu with different widths displayed.
Select a width and then select its focus point in the focus editor.
Save & Close the tab.
Adding Custom Widths
Go to plugin's extension manager. Look for Media-Action Focus.
Add the new widths here and save the plugin.
You will notice those widths in the Focus tab.
Deleting the Previously-Set Focus Point
Note This will delete all previously saved focus and resized images of the original image generated by the plugin.
Go to the Focus tab' in Edit Image.
In the lower right of the screen there is a delete focus button.
After deleting the previous focus, reload the page or hit Cancel to go back to the Media Manager
Workflow
This Extension consists of two independent plugins.
Focus Plugin
This is a Media Action plugin. It provides the user interface for managing the focus points. It takes in the focus points from the user and saves it into the file storage by sending an AJAX request to the controller AdaptiveImageController.php. When satisfied with the focus, select Save and Close which raises another AJAX request. This time new images are generated with an efficient algorithm and saved in the directory /media/focus. The nomenclature of resized images is (resize image width)_(base64 encoded full path of the image).
Adaptive Image Plugin
This is a Content plugin. If the focus of a particular image is being set in the currently opened article, this plugin will add the <picture> element to that image and all the associated resized images will be appended to it from /media/focus/. This plugin will also delete all the resized images if the original image is not found (or deleted).
Extending Extension
Changing Storage for Focus Points
The focus area is saved in JSON format in the file storage (JSONFocusStore Driver). This can be changed to any other storage by making a new driver class into Joomla\CMS\AdaptiveImage\. The driver class should implement the Joomla\CMS\AdaptiveImage\FocusStoreInterface' interface.
The JSONFocusStore driver class is implementing Joomla\CMS\AdaptiveImage\FocusStoreInterface. FocusStoreInterface has the following methods declared:
1.setFocus($dataFocus, $width, $imgSrc)
This method stores/updates the focus area.
$dataFocus has the dimensions of the focus area. It is an array with keys box-left, box-top, box-width, box-height.
$width is the size of image for which the focus area is being stored.
$imgSrc is the full path of the image corresponding to the focus area.
2. getFocus($imgSrc, $width)
This method returns all the focus area associated with the image
$imgSrc is the full path of the image corresponding to the focus area.
$width(optional) If the user want to take in the value of focus area for particular width, it may be mentioned.
3. deleteFocus($imgSrc)
This method deletes all the focus associated with the image.
$imgSrc is the full path of the image corresponding to the focus area.