Opera extension: Imagus
Monday, January 3, 2011 11:17:22 PM
Updated: February 10, 2013 - v0.9.5
The extension is intended to complement image features that (I think) is missing from Opera by default or give features that are just simply useful. The original idea was to implement as many image related features as it's possible. Read on to find out for what the extension is capable of...By the way, this project is still under development, it doesn't contain serious bugs, but use with caution. The features aren't in final state, so their functionality may change, which means that after an update the extension maybe won't work properly or absolutely not.
Install extension Opera 11.60-12.15 To install the extension on Opera 12.10+, you have to add the following URL to the trusted sites (O-menu / Settings / Preferences (Ctrl+F12) / Advanced tab / Security / Trusted Websites):
http://files.myopera.com/Deathamns/extension/imagus/Or download the extension file and drop it into the browser window.
Viewer
Replaces the browser's default image resizer to a more customizable version. For instance, it's possible to set the initial sizing mode or disable the resizing totally, it can detect if an image has higher resolution, adds possibility for rotation, options for changing background color or image border, zooming to a selected area or zooming with mouse wheel, and more...Hover zoom
Enlarges thumbnails and linked images (or even linked thumbnails) into a popup with just a mouse hover.As well as the Viewer, it's also fairly customizable with some extra features, such as full-zoom which allows you to view the image with original size in the same tab, rotation or it can load image albums as well.
Tools
This section contains global features or features that have less options.-
Shortcuts - they can be used both on Viewer and Hover zoom
-
Opening images - many ways for opening images from web pages (e.g., background images)
-
Send image to... - it sends the image address to an online service (e.g., reverse image search, image editor, gif frame extractor...)
New service can be added in preferences (one per line).
Format: "[+]Name|search engine's URL". In the service URL is placed the image address with the %url variable.
Example: TinEye|http://www.tineye.com/search?url=%url
If you put a "+" sign before the name (e.g., "+TinEye"), then it means that the service will be used when the shortcut is used. Multiple entries can be enabled, then all of them will be opened.
Sieve
This is a set of rules which are helping the extension to find the larger images.The rules are based on regular expressions, JavaScript and a bit of HTML.
Gallery
This is something like a bookmark for images. It stores only the image address with a thumbnail, and if possible, then one or two source link. The "Source", which is the address of the page where you've seen the image, and the "Target", which is the address of the link (if it wasn't the same as the zoomed image address).When an image is opened or "hoverzoomed", then pressing the shortcut (G by default) will add it to the list without any questions. Shift + G will prompt for labels. Deleting images from the list: Ctrl + Right click on the thumbnail cell or Ctrl + Click to select some and the minus button from the button-list. Shift + Right click on a cell to edit the labels.
Grants
At Grants you can tell on which sites can the extension work.It's also possible to block just some Sieve rules.
Syntax: grant operator (optionally followed by rules separated with commas) colon address
(!|!!|~|~~)[rule1,rule2,...]:(*|string|regular expression)
Also there is possibility to add comment lines, simply by starting the line with a ; (semicolon).
When you double the grant operator (! or ~), then it means that you want use regular expression in the URL. "*" means everything.
Example for blocking on all sites:
!:*Blocking all sites except opera.com (actually it will allow any URL that contains the "opera.com" string, and yes, the order matters):
!:* ~:opera.comTo block a few sites:
!:http://www.google.com !:opera.com !!:^ftp://Blocking on all Google sites, except German and French:
!:http://www.google.com/ ~~:^http://www\.google\.(?:de|fr)Allowing only the "MyOpera" and "LinkedImages" rules here on my.opera.com:
~#MyOpera,LinkedImages:my.opera.com
For the extension's icon thanks goes to http://esk6a.deviantart.com/
Known Issues
# (vw) Rotated image has incorrect position# (vw) When larger image was opened, going back won't properly load the smaller one
# (vw) "res" cannot be handled if it is a function
# (lst) Thumbnails are not loading when high-res mode disabled, and the specific rules support it
# (lst) Sometimes the last thumbnails are off the screen
# (hz) Only one SVG can be loaded in the popup at a given session (DSK-376698)
# (hz) SVGs disappear sometimes when zooming a bit deeper (seems it's an Opera bug)
# (hz) Preload doesn't work (only) for high-res images
# (hz) Preload on hover doesn't work if there is more than one possible image to load
# (hz) Hiding image dimensions in caption hides the whole caption
# (hz) Sometimes the image blinks once when it started to load, especially when interlaced loading is on (but If I have to guess, this is a bug in Opera, again)
Some Opera related issues.
v0.9.5 - February 10, 2013 | Update! | Changelog
Fixes for the problems introduced in the previous release, also some other improvements, which are listed in the changelog. There was a modification, that broke some of the rules, but updating the Sieve will solve the problem.v0.9.4 - January 20, 2013
Read the changelog, because this time there is not much to talk about. If you don't understand something, feel free to ask.Don't forget, there is no auto-update anymore, you have to click the "Update!" or "Install extension" link above. And, as usually, updating the Sieve is recommended too.
In addition, a translation management system was made in the background, so if you're interested in to translate the extension to your language, drop me an email (my username at myopera dot com).
v0.9.3 - September 09, 2012
From this version the extension won't be automatically updated by the browser. However, the notification about new version will appear on the toolbar icon (the new version number with green background) as did before.This means that next time you have to manually update the extension, coming here and clicking on the "Update!" link above (you can click on "Install extension" at the top, it's the same).
It's recommended to update, since if you don't, you won't get any notification about future releases.
v0.9.2 - August 17, 2012
!! As in version 0.9, you have to update the Sieve again (Preferences / Sieve / the update button - double arrow pointing down). It must be done, otherwise most of the features of the extension won't work.- From now, every "link" and "img" parameter must start without the https?:// protocol string and the www sub-domain (if present). This applies only to http.
The reason of this to skip writing every time the protocol, and the www, because they are very common, almost every rule starts with that.
For example if the URL is "http://www.opera.com/image" (we assume that the site has a secure connection, and it works also without www), then the older version's rule would look like this:link: ^(https?//(www\.)?opera\.com/image) to: $1
In the new version, the URL first will be converted to "opera.com/image" and this will be checked against the regexp, so now the rule should be written as:link: ^(opera\.com/image) to: $1
But the result will be the same; "http://www.opera.com/image" (returned by "to: $1"), because what is removed first, it will be added later. However, sometimes you want to prevent this behavior (adding what is removed), therefore if the replacement starts with http, then the script won't prepend the removed string.
There may be cases when the URL will work with "www" and some other sub-domain. E.g., "http://www.opera.com" and "http://test.opera.com". In that case the following expression will match only "http://test.opera.com", but not the URL with "www":link: ^test\.opera\.com
Since the www is removed, and now the URL can be "opera.com" or "test.opera.com", the correct expression would be:link: ^(?:test\.)?opera\.com
Besides these, from now, the "to" parameter can have only one function, and that function can return multiple results joined by new lines. BUT, if you use this method, the full URL must be matched, and full URL must be returned. If "to" is not a function, these restrictions have no significance.
Something to play with...
The following stuff is experimental, they future and exact functionality is not known yet.
Screen capture (Opera 12.10+)
Since this sounds like an image related stuff, probably this will be implemented somehow into the extension. Actually, it's already working pretty well, however the only thing you can do with the captured image is to save.
So, how does it work?
Go to a random web-page, and press the shortcut (Alt+Shift+T by default, change at Prefs/Tools/Shortcuts) to capture the visible content or Ctrl+Alt+Shift+T to capture the entire page.
Opera can capture only the visible content, means, that the extension must jump all over the page to take shots of every part, which will seem a bit weird, so don't panic, just wait until a new page opens with the captured image (actually canvas), where you can choose the output format (jpeg or png), and then save as.
It works on all pages where an extension can work (text, html, xml, svg (of course svg can be saved in Opera already, which is the recommended method)).
There are sites that use infinite scrolling, or maybe you use an extension for that purpose (AutoPatchWork, AutoPager), but when you taking a screen-shot, probably you don't want to end up with a kilometer-long image, and that's why the extension won't go further than the page size was at the moment when the capture started.
There are floating elements that are always at the same place on the screen. Normally they would be printed on every frame, but the extension tires to handle them, but it's pretty hard to deal with them correctly, so maybe you won't always get the result what you want.
Other problems you may face with screen capturing:
- plugin-content can't be captured
- it can be used only when page-size is 100%
- you may get interesting results with enabled HWA
- on captured image text doesn't have sub-pixel rendering
- use "Fit to Width" to hide horizontal scrollbars if they're not needed
- dimensions of dynamic pages can change, which will result a somewhat broken image
- you may first scroll down the page to force the dynamically generated content to load
- "default" is the suggested filename when saving (since, sadly, there is no Opera API for saving files)
- the page is re-rendered before capture, so you won't get what you actually see (example)
- it may use pretty much memory on large pages (too long pages cannot be captured (a blank canvas will be shown), since Opera uses memory limit)
Extracting frames from animated images
As the title says, it can extract frames from APNG or GIF images, also play them slower/faster forward/backward.
Unfortunately, Opera doesn't use the global cache for extensions, so the image will be downloaded again, which will take a couple of moments for a few MB image (at the moment there is a size limit, maximum 15MB allowed).
To try out, add a new line to the "Send image to..." list at Preferences / Tools:
frames|anim.html?#%urlOr add this if you want to be able to save the frames (slower) (added by default):
frames|anim.html?img#%url







« Previous 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Next »
Unregistered user # Monday, December 12, 2011 12:57:51 PM
alexl1984 # Monday, December 12, 2011 1:51:29 PM
Also, get a flattr tip button so we can show you some love!
Deathamns # Monday, December 12, 2011 8:53:00 PM
Originally posted by anonymous:
I don't know, it seems a security risk. If I do, then I must to be sure that everyone can add only reviewed filters, which will need some kind of trusted repository...Originally posted by alexl1984:
I have a quite long todo list, it will take time...Originally posted by alexl1984:
Unfortunately, I can't. Wrong country.Unregistered user # Monday, December 12, 2011 10:18:01 PM
Deathamns # Tuesday, December 13, 2011 10:07:37 AM
Originally posted by anonymous:
Not exactly. The script can't get the request headers, so can't get the cookies. But (personal) data stealing would be a problem.E.g., link: something.doesn't.matter, url: presonal.data.url, res: :script here, which will parse the html and ... (by the way, the new version can send post request too)
Other problem would be if you don't want to request a page as logged in, because it does something else too (e.g., puts the visited page to your history, like on YouTube the watched history).
And yes, an option, marking as trusted, probably would be enough, but I think it's not possible to control cookie-sharing for individual sites, because the extension API is quite simple. Maybe if I manually remove the cookie header, when I make the request... I'll give it a try.
Edit: Nope, it's not possible.
Unregistered user # Tuesday, December 13, 2011 3:08:40 PM
Unregistered user # Sunday, December 18, 2011 3:22:38 AM
KiShodar # Sunday, December 18, 2011 12:39:56 PM
All I get is the red outline around the image thumbnail for a second and then nothing.
Deathamns # Sunday, December 18, 2011 1:16:40 PM
Originally posted by viwek:
So, you experience lag while you don't using it (so, you don't use (mainly) hover zoom, just doing some regular browsing), or the image is what slowly pops out or slides with the mouse?If the second, then you can set many options: Interlaced loading: off, Show caption: never, at Animation on Opacity, Size, Position options set the number values to 0, Move image with the cursor: you can turn this off too, at Appearance clear the Border and Shadow inputs.
Originally posted by KiShodar:
It should. Show me an example where you see this. (By the way, when images zoomed from frames, there are no information messages, like "Loading...", so maybe you need to wait a little bit more to see the result.)Edit: I've investigated and there is a bug indeed. When the frame's domain address is different from the parent document, then it will happen what you experience.
Rodny # Sunday, December 18, 2011 9:49:07 PM
Tnx for new version.
When do you planning to add full translation possibility? If it would help, I've made full Russian translation by adding some "data-lng" attributes in options.html and \locales\ru\options\lang.js. Attributes begin with "R_" for quick search.
imagus-0.8.10_ru.oex
And popup.html translated too.
In options.html line 366: data-lng="ANIMATION", but in lang.js is HZ_ANIMATION
"don't be case-sensitive" - Is it means that the default unchecked flag is a case-sensitive state?
Can you help with this page? There are 8 screenshots placed at all-poster.ru. Six of them are hoverzoomed with default sieve (LinkedImages, I suppose), but 1st and 4th no. I can't find any difference between them...
P.S. Very need the import feature.
Unregistered user # Monday, December 19, 2011 3:32:44 AM
Unregistered user # Monday, December 19, 2011 6:56:05 AM
Deathamns # Monday, December 19, 2011 10:51:28 AM
Originally posted by Rodny:
It will take time, for example from tomorrow I can't work on the extension at least for a month.Anyway, I'm glad that there will be translators, I've already got other offer, but I'll say the same; until it isn't close to the final state, I don't want to bother myself and anyone else about translations.
Originally posted by Rodny:
Yes.Originally posted by Rodny:
LinkedImages shouldn't match those links, at least mine doesn't:Originally posted by Rodny:
It will need more work. Create new ones instead...Originally posted by Viwek:
If there is a thumbnail, then it will be set as background for the image while loading. So, the background will be a low resolution image (with or without a mask color) of the original image instead of the background color. (e.g., here this (top original image, bottom the enlarged thumbnail), with transparent mask color: #7092be)Originally posted by Viwek:
If the times comes, I'll make a better manual. (Imagus = image + magus)Originally posted by Viwek:
I don't want to break any feature on any site, so this won't happen.vlekhak # Monday, December 19, 2011 12:34:43 PM
And i was not talking about breaking any feature on any site. It is just that your extension pops up image when fb is still loading maybe it could work in coordination with the built in feature. i hope i am clear.
I have subscribed to the rss feed of the comments on this blog and it seems that you reply to everyones queries and suggestions. Thanx for this kind of support and dedication. We all love you.
Rodny # Tuesday, December 20, 2011 6:20:05 PM
Thank you very much for support of vkontakte. It works fine on public photos. But on albums with access only for friends the 'Failed!' message is shown.
When you will have more free time, write me, please, I'll give you access to the test account.
Deathamns # Tuesday, December 20, 2011 7:16:57 PM
Originally posted by vlekhak:
It isn't really my idea, you can see this method on many sites.Originally posted by vlekhak:
Maybe you are clear, but I didn't even understand the problem.Originally posted by Rodny:
You can send me the access data, I'll check it.inDigazzZAnuarSh # Thursday, December 22, 2011 4:01:27 AM
Deathamns # Thursday, December 22, 2011 11:41:46 AM
Originally posted by AnuarSh:
Indeed. Will be fixed.------------------------
Other, just for fun:
If someone interested in watching YouTube videos in a popup (without leaving the page), those can achieve this with Imagus. They need only to add a new rule, and probably block the extension on YouTube, because there are many links, and it will be quite annoying when a video pops up in every half second. Here's the result.
So, under Sieve, create a new rule (plus sign), name it to "yt_video", and fill the following inputs:
link
^https?://(?:youtu\.be/|www\.youtube\.com/watch\?(?:(?!v=)[^=]+=[^&]+&)?v=)([\w-]{11}).*to: var vid = "http://www.youtube.com/embed/" + $[1] + "#.svg"; window.postMessage({cmd: "svg_info", svg: true, url: vid, wh: {w: 640, h: 360}}, "*"); return vid;After this go to Grants and add the following line to the textarea (unfortunately feature and rule specific blocking is buggy in the latest release, so you need to do a full block):
Press Save, reload this page and hover the cursor over this link.
Note: To be able to click on the video, you can go into fullZoom (pressing Z or Enter).
Note: If you hide the popup while the video is still playing, it will continue to play in the background. To stop, you need to do another hover or stop the video manually while you see it.
inDigazzZAnuarSh # Thursday, December 22, 2011 11:57:47 AM
inDigazzZAnuarSh # Thursday, December 22, 2011 12:02:17 PM
Deathamns # Thursday, December 22, 2011 12:09:24 PM
inDigazzZAnuarSh # Thursday, December 22, 2011 6:16:42 PM
Unregistered user # Monday, December 26, 2011 2:54:18 AM
inDigazzZAnuarSh # Monday, December 26, 2011 7:40:25 AM
Deathamns # Monday, December 26, 2011 2:28:31 PM
Originally posted by anonymous:
This problem annoys me as well, but if you stop the loading in the browser, after that it won't fetch any new resource (except XHR requests). With the approach I chose, I don't know any method to stop the loading by the script.Originally posted by AnuarSh:
What would be the purpose of that?inDigazzZAnuarSh # Monday, December 26, 2011 5:50:52 PM
Originally posted by Deathamns:
When cache is cleared... Would be much easier load all images in gallery by clicking a one button.
One more thing about gallery...
When i posted a link to gallery.js i meant not saving loaded (or adding selected) images to the gallery but the map preview of downloaded images for better viewing ... a-la 'Gallery mode'
smth like https://addons.opera.com/ru/addons/extensions/details/slideshowplayer/1.0.2/?display=en
allouh # Monday, December 26, 2011 7:07:40 PM
For me i alway prefer the less keyboard interaction with regular operations like viewing images and zoom, so for this i suggest add these as an option to enable:
- Make fullzoom the initial zoom when mouse hover over the image.
- Add left mouse click to close the fullzoom mode.
- Add mouse wheel to zoom in/out in fullzoom instead scrolling the background page.
- And for Sieve Make our additions to the rules permanent and do not reset after update, or just make a place where we can contribute our own sites to include them with the update.
Thanks
Deathamns # Monday, December 26, 2011 8:45:43 PM
Originally posted by AnuarSh:
This was what I thought at the first time... And perhaps I'll make it available in the Gallery too, but I think that reloading function, what are you asking, won't be implemented.Originally posted by allouh:
Since fullZoom works different from the normal zoom, the first one won't get its option, but I will consider the other two.About the Sieve... It will be smarter over time.
Ignacio Mignaciomunoz88 # Tuesday, December 27, 2011 3:00:27 AM
im just interested on the ctrl+shift+click to view background images
how can i disable all the other stuff?
is it possible to make just a little extension to do so?
thanks
Unregistered user # Tuesday, December 27, 2011 7:38:45 AM
Rodny # Tuesday, December 27, 2011 7:55:54 AM
Originally posted by anonymous:
Он уже давно есть. И прочитай ответ автора ниже.
Deathamns # Tuesday, December 27, 2011 9:58:35 AM
Originally posted by ignaciomunoz88:
Go to Preferences...Viewer / Initial sizing mode / disable resizing or kill browser's resizer
Hover zoom / Enabled when holding nothing. (however there is a bug, you can't leave on nothing, so you need to set to some other control key e.g., alt)
And under Tools at Opening images un-check the options you don't need.
inDigazzZAnuarSh # Wednesday, December 28, 2011 5:32:30 AM
http://s42.radikal.ru/i095/1112/60/56fc5382fd22.png -
Deathamns # Wednesday, December 28, 2011 10:18:53 AM
- If the picture is large, then the script needs a few seconds to generate the thumbnail.
- If the picture needs authorization to be downloaded (one more reason to enable cookie-sharing).
- If you send more image to the Gallery at once, then the browser messes something up, and won't allow to generate new thumbnails. Probably this is a bug, and a browser-restart will solve the problem (at least for a while). In this case you can also see "Security violation" messages in the Error console.
- Or losing the connection, closing Opera before the thumbnail creation is done, or manually modifying the database, and a few more situation (but probably these are not your case).
allouh # Thursday, December 29, 2011 7:08:55 AM
Deathamns # Thursday, December 29, 2011 8:11:17 AM
allouh # Friday, December 30, 2011 12:41:24 PM
ie, i can't copy any image link without activating the hover zoom since i can't beat the 1 sec delay time!
Any fix?
Deathamns # Friday, December 30, 2011 12:47:55 PM
allouh # Friday, December 30, 2011 4:18:38 PM
Deathamns # Friday, December 30, 2011 8:21:54 PM
alekksander # Sunday, January 1, 2012 4:42:28 PM
DK KIRAKIRA-KD # Monday, January 2, 2012 5:17:23 PM
ESTA EXCELENTE!!!
Rodny # Monday, January 2, 2012 9:19:40 PM
Can you add customizable string with variables for HoverZoom caption as it is in Viewer title/status?
Unregistered user # Tuesday, January 3, 2012 6:10:33 AM
Unregistered user # Tuesday, January 3, 2012 6:16:03 AM
Deathamns # Tuesday, January 3, 2012 1:53:23 PM
Originally posted by KIRA-KD:
Because, it is still in development.Originally posted by Rodny:
Maybe, I'll see.Originally posted by anonymous:
I don't use Firefox, but why don't you do a search on its addon list?Indeed, the latest releases have a bunch of problems, however I didn't encounter any crash for a while.
If the problem is related to the browser itself, you should complain to the developers, because I can't help on these things.
Unregistered user # Tuesday, January 3, 2012 3:22:38 PM
Rodny # Tuesday, January 3, 2012 9:04:19 PM
Please add to "radikal.ru" line "http://$1.png" on next Sieve update. Example, see under "Скриншоты" spoiler.
And in "rghost.net" change part "rghost\.net" to "rghost\.(?:net|ru)". Example
Deathamns # Tuesday, January 3, 2012 10:07:13 PM
Rodny # Tuesday, January 3, 2012 11:07:12 PM