Last modified: 2014-04-14 14:36:56 UTC
The API does not seem to allow any way to retrieve a thumb url for an image given only its height and no width specified. For instance, accessing the following URL: http://en.wikipedia.org/w/api.php?action=query&format=xml&titles=File:Flag+of+Spain.svg&prop=imageinfo&iiprop=dimensions|url&iiurlheight=28 gives the following XML response: <api> <error code="iiiiurlwidth" info="iiurlheight cannot be used without iiurlwidth"/> </api> How, therefore, could one retrieve a thumb url for an image given the height to scale to, without specifying the width ? An example of such a situation would be when parsing the following snippet of wikitext: [[Image:Flag of Spain.svg |x28px]] - here only the height is specified, thus an image of the flag of Spain should be retrieved having the height set to 28 pixels and the width scaled accordingly.
It seems that there's a workaround by providing the iiurlwidth param. with large values, surpassing the native width for the requested file - at least for some svg files, not sure if applicable also to other types of images.
This was more complicated than I thought. Apparently the "x28px" case is undefined (but useful) behaviour: Parser::makeImage only sets the height parameter, which causes the linker to set the width parameter to the image source width, which will then cause MediaHandler::normaliseParameters to set the width to the width corresponding to height... This needs to be handled in the file/media/parser code in a defined way before we can implement this in the API. If the described behaviour is useful (which I think it is), also a parser test should be written.
Possible duplicate: bug 24763. Somehow related: bug 32387.
(In reply to Nemo from comment #3) > Possible duplicate: bug 24763. > Somehow related: bug 32387. And Scott made an RfC which seems to be exactly about this bug: <https://www.mediawiki.org/wiki/Requests_for_comment/Square_bounding_boxes>. Isn't it?
Umm. The url in comment 0 seems to work.
Closing as fixed; I've verified that the URL in comment 0 now works (as bawolff mentions).