- if (! defined($im->Get("width")) || ! defined($im->Get("height"))) {
- return "[[img ".sprintf(gettext("failed to determine size of image %s"), $file)."]]";
+ my $imgtag='<img src="'.$imgurl.
+ '" width="'.$dwidth.
+ '" height="'.$dheight.'"'.
+ (exists $params{alt} ? ' alt="'.$params{alt}.'"' : '').
+ (exists $params{title} ? ' title="'.$params{title}.'"' : '').
+ (exists $params{class} ? ' class="'.$params{class}.'"' : '').
+ (exists $params{align} && ! exists $params{caption} ? ' align="'.$params{align}.'"' : '').
+ (exists $params{id} ? ' id="'.$params{id}.'"' : '').
+ ' />';
+
+ my $link;
+ if (! defined $params{link}) {
+ $link=$fileurl;
+ }
+ elsif ($params{link} =~ /^\w+:\/\//) {
+ $link=$params{link};
+ }
+
+ if (defined $link) {
+ $imgtag='<a href="'.$link.'">'.$imgtag.'</a>';
+ }
+ else {
+ my $b = bestlink($params{page}, $params{link});
+
+ if (length $b) {
+ add_depends($params{page}, $b, deptype("presence"));
+ $imgtag=htmllink($params{page}, $params{destpage},
+ $params{link}, linktext => $imgtag,
+ noimageinline => 1,
+ );
+ }