Re: Image::Imlib2 error
Ian B <[email protected]> Fri, 28 Mar 2025 14:42:27 +0000
| Newsgroups | gmane.comp.apache.mod-perl |
|---|---|
| Message-ID | <CANAUX_SbG4=xDeHmYc1ZSbaDeroLD_woU6wYu_1SaseWVhUBBA@mail.gmail.com> |
--000000000000fc9f480631681470
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Not sure of the answer, but just to try and put a couple of pieces
together...the
require DynaLoader <https://metacpan.org/module/DynaLoader/source>;
@ISA =3D qw(Exporter DynaLoader);
bootstrap Image::Imlib2 $VERSION;
lines will probably do this, and hence it will look and find the .xs file
you've found...
and as you've seen...
if (err =3D=3D IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT) {
Perl_croak(aTHX_ "Image::Imlib2 load error: No loader for
file format");
}
so IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT feels like it's the key bit..=
.
Now, was Imlib2 custom compiled or installed as part of your o.s packages ?
I'm guessing it's definitely installed, but worth checking...
I can see some references to IMLIB2_LOADER_PATH when I look online, but not
sure that will help...
First question though maybe. What has changed recently ?
Ian
On Fri, Mar 28, 2025 at 2:04=E2=80=AFPM Ruben Safir <[email protected]> wr=
ote:
> I have an old image gallery that uses this libary in apache2 and modperl
>
> I made a small test program is it behaves like the server code
>
> #!/usr/bin/perl
> use warnings;
>
> use Image::Imlib2;
> my $image;
> #my $pic =3D
> qq(/usr/local/apache2/htdocs/images/2025_purim_amsterdam/DSC03652.JPG);
> my $pic =3D qq(/home/ruben/20130303_133505.jpg);
> if (-e $pic) {
> print STDERR "File Exists =3D=3D> $pic\n";
> $image =3D Image::Imlib2->load($pic);
> }
> $image->save("/home/ruben/out.jpg");
>
> [ruben@www3 Image]$ ~/bin/testimlib.pl
> File Exists =3D=3D> /home/ruben/20130303_133505.jpg
> Image::Imlib2 load error: No loader for file format at
> /home/ruben/bin/testimlib.pl line 10.
>
> the load() method seems to no longer recognize the file types to decode
> them. It is very fustrating. I looked at the code in
>
>
> /usr/local/lib/perl5/site_perl/5.26.1/x86_64-linux-thread-multi/Image/Iml=
ib2.pm
>
> I can't even see the method load or where it might be inherited from
>
> package Image::Imlib2;
>
> use strict;
> use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD);
>
> require Exporter;
> require DynaLoader;
>
> @ISA =3D qw(Exporter DynaLoader);
>
> # Items to export into callers namespace by default. Note: do not export
> # names by default without a very good reason. Use EXPORT_OK instead.
> # Do not simply export all your public functions/methods/constants.
> @EXPORT =3D qw(
> TEXT_TO_RIGHT
> TEXT_TO_LEFT
> TEXT_TO_UP
> TEXT_TO_DOWN
> TEXT_TO_ANGLE
> );
> $VERSION =3D '2.03';
>
> bootstrap Image::Imlib2 $VERSION;
>
> Image::Imlib2->set_cache_size(0);
>
> sub new_transparent {
> my ( $pkg, $x, $y ) =3D @_;
> my $pixel =3D pack( 'CCCC', 0, 0, 0, 0 ); # ARGB
> return Image::Imlib2->new_using_data( $x, $y, $pixel x ( $x * $y ) );
> }
>
> sub new_using_data {
> my ( $pkg, $x, $y, $data ) =3D @_;
> if ( defined $data && 4 * $x * $y =3D=3D length $data ) {
> return $pkg->_new_using_data( $x, $y, $data );
> } else {
> return undef;
> }
> }
>
> sub autocrop {
> my $image =3D shift;
> my ( $x, $y, $w, $h ) =3D $image->autocrop_dimensions;
> return $image->crop( $x, $y, $w, $h );
> }
>
> 1;
>
>
>
> It is not that large really.
>
> I do find it in the source code for the module in the C library
>
> [ruben@www3 Image]$ pwd
> /home/ruben/.cpan/build/Image-Imlib2-2.03-6/lib/Image
> [ruben@www3 Image]$
> [ruben@www3 Image]$ grep load ./*
> ./Imlib2.c:XS_EUPXS(XS_Image__Imlib2_load); /* prototype to pass
> -Wmissing-prototypes */
> ./Imlib2.c:XS_EUPXS(XS_Image__Imlib2_load)
> ./Imlib2.c: image =3D imlib_load_image_with_error_return
> (filename, &err);
> ./Imlib2.c: Perl_croak(aTHX_ "Image::Imlib2 load error:
> File does not exist");
> ./Imlib2.c: Perl_croak(aTHX_ "Image::Imlib2 load error:
> File is directory");
> ./Imlib2.c: Perl_croak(aTHX_ "Image::Imlib2 load error:
> Permission denied");
> ./Imlib2.c: Perl_croak(aTHX_ "Image::Imlib2 load error:
> No loader for file format");
> ./Imlib2.c:XS_EUPXS(XS_Image__Imlib2_load_font); /* prototype to pass
> -Wmissing-prototypes */
> ./Imlib2.c:XS_EUPXS(XS_Image__Imlib2_load_font)
> ./Imlib2.c: "Image::Imlib2::load_font",
> ./Imlib2.c: font =3D imlib_load_font(fontname);
> ./Imlib2.c: (void)newXSproto_portable("Image::Imlib2::load",
> XS_Image__Imlib2_load, file, "$$");
> ./Imlib2.c: (void)newXSproto_portable("Image::Imlib2::load_font",
> XS_Image__Imlib2_load_font, file,
>
> I really need to fix this :(
>
> I would appreciate any help I can get. I never put a C program in perl
> code I don't even see how it inherited the load method or any
> constructor for image types.
>
>
> Seems in some source it has this =3D=3D>
> CODE:
> {
> Imlib_Image image;
> Imlib_Load_Error err;
>
> image =3D imlib_load_image_with_error_return (filename,
> &err);
> if (err =3D=3D IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST) {
> Perl_croak(aTHX_ "Image::Imlib2 load error: File does
> not exist");
> }
>
> if (err =3D=3D IMLIB_LOAD_ERROR_FILE_IS_DIRECTORY) {
> Perl_croak(aTHX_ "Image::Imlib2 load error: File is
> directory");
> }
>
> if (err =3D=3D IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_READ=
) {
> Perl_croak(aTHX_ "Image::Imlib2 load error: Permission
> denied");
> }
>
> if (err =3D=3D IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT=
) {
> Perl_croak(aTHX_ "Image::Imlib2 load error: No loader
> for file format");
> }
> RETVAL =3D image;
> }
>
>
> https://metacpan.org/release/LBROCARD/Image-Imlib2-2.03/source/lib/Image/=
Imlib2.xs#L156
>
>
> Not sure how this is even called by the module. It is not an ISA
>
> this line seems to be the black hole for me
> image =3D imlib_load_image_with_error_return (filename, &err);
>
> --
> So many immigrant groups have swept through our town
> that Brooklyn, like Atlantis, reaches mythological
> proportions in the mind of the world - RI Safir 1998
> http://www.mrbrklyn.com
> DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002
>
> http://www.nylxs.com - Leadership Development in Free Software
> http://www.brooklyn-living.com
>
> Being so tracked is for FARM ANIMALS and extermination camps,
> but incompatible with living as a free human being. -RI Safir 2013
>
--000000000000fc9f480631681470
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Not sure of the answer, but just to try and put a couple o=
f pieces together...the=C2=A0<div><code class=3D"gmail-perl gmail-keyword" =
style=3D"box-sizing:border-box;font-family:Menlo,Monaco,Consolas,"Libe=
ration Mono","Bitstream Vera Sans Mono",Courier,"Courie=
r New",monospace;font-size:14px;padding:0px;color:rgb(0,102,153);backg=
round-color:rgb(245,245,245);border-radius:0px;white-space:pre;font-weight:=
700">require</code><span style=3D"color:rgb(51,51,51);font-family:Menlo,Mon=
aco,Consolas,"Liberation Mono","Bitstream Vera Sans Mono&quo=
t;,Courier,"Courier New",monospace;font-size:14px;white-space:pre=
;background-color:rgb(245,245,245)"> </span><code class=3D"gmail-perl gmail=
-plain" style=3D"box-sizing:border-box;font-family:Menlo,Monaco,Consolas,&q=
uot;Liberation Mono","Bitstream Vera Sans Mono",Courier,&quo=
t;Courier New",monospace;font-size:14px;padding:0px;color:rgb(0,0,0);b=
ackground-color:rgb(245,245,245);border-radius:0px;white-space:pre"><a href=
=3D"https://metacpan.org/module/DynaLoader/source" style=3D"box-sizing:bord=
er-box;background-color:transparent;color:rgb(0,0,0)">DynaLoader</a>;</code=
></div><div><code class=3D"gmail-perl gmail-variable" style=3D"box-sizing:b=
order-box;font-family:Menlo,Monaco,Consolas,"Liberation Mono",&qu=
ot;Bitstream Vera Sans Mono",Courier,"Courier New",monospace=
;font-size:14px;padding:0px;color:rgb(170,119,0);background-color:rgb(245,2=
45,245);border-radius:0px;white-space:pre">@ISA</code><span style=3D"color:=
rgb(51,51,51);font-family:Menlo,Monaco,Consolas,"Liberation Mono"=
,"Bitstream Vera Sans Mono",Courier,"Courier New",monos=
pace;font-size:14px;white-space:pre;background-color:rgb(245,245,245)"> </s=
pan><code class=3D"gmail-perl gmail-plain" style=3D"box-sizing:border-box;f=
ont-family:Menlo,Monaco,Consolas,"Liberation Mono","Bitstrea=
m Vera Sans Mono",Courier,"Courier New",monospace;font-size:=
14px;padding:0px;color:rgb(0,0,0);background-color:rgb(245,245,245);border-=
radius:0px;white-space:pre">=3D </code><code class=3D"gmail-perl gmail-stri=
ng" style=3D"box-sizing:border-box;font-family:Menlo,Monaco,Consolas,"=
Liberation Mono","Bitstream Vera Sans Mono",Courier,"Co=
urier New",monospace;font-size:14px;padding:0px;color:rgb(0,0,255);bac=
kground-color:rgb(245,245,245);border-radius:0px;white-space:pre">qw(Export=
er DynaLoader)</code><code class=3D"gmail-perl gmail-plain" style=3D"box-si=
zing:border-box;font-family:Menlo,Monaco,Consolas,"Liberation Mono&quo=
t;,"Bitstream Vera Sans Mono",Courier,"Courier New",mon=
ospace;font-size:14px;padding:0px;color:rgb(0,0,0);background-color:rgb(245=
,245,245);border-radius:0px;white-space:pre">;</code></div><div><code class=
=3D"gmail-perl gmail-plain" style=3D"box-sizing:border-box;font-family:Menl=
o,Monaco,Consolas,"Liberation Mono","Bitstream Vera Sans Mon=
o",Courier,"Courier New",monospace;font-size:14px;padding:0p=
x;color:rgb(0,0,0);background-color:rgb(245,245,245);border-radius:0px;whit=
e-space:pre"><code class=3D"gmail-perl gmail-plain" style=3D"box-sizing:bor=
der-box;font-family:Menlo,Monaco,Consolas,"Liberation Mono","=
;Bitstream Vera Sans Mono",Courier,"Courier New",monospace;p=
adding:0px;border-radius:0px">bootstrap Image::Imlib2 </code><code class=3D=
"gmail-perl gmail-variable" style=3D"box-sizing:border-box;font-family:Menl=
o,Monaco,Consolas,"Liberation Mono","Bitstream Vera Sans Mon=
o",Courier,"Courier New",monospace;padding:0px;color:rgb(170=
,119,0);border-radius:0px">$VERSION</code><code class=3D"gmail-perl gmail-p=
lain" style=3D"box-sizing:border-box;font-family:Menlo,Monaco,Consolas,&quo=
t;Liberation Mono","Bitstream Vera Sans Mono",Courier,"=
Courier New",monospace;padding:0px;border-radius:0px">;</code><br></co=
de></div><div>lines will probably do this, and hence it will look and find =
the .xs file you've found...</div><div><br></div><div>and as you've=
seen...</div><div><br></div><div>if (err =3D=3D IMLIB_LOAD_ERROR_NO_LOADER=
_FOR_FILE_FORMAT) {<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 Perl_croak(aTHX_ "Image::Imlib2 load error: No loader for f=
ile format");<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 }<br></div><div><br></div><div>so=C2=A0IMLIB_LOAD_ERROR_NO_LOADER_FOR_F=
ILE_FORMAT feels like it's the key bit...</div><div><br></div><div>Now,=
was Imlib2 custom compiled or installed as part of your o.s packages ? I&#=
39;m guessing it's definitely installed, but worth checking...</div><di=
v><br></div><div>I can see some references to=C2=A0<span style=3D"backgroun=
d-color:rgb(227,230,232);color:rgb(12,13,14);font-family:ui-monospace,"=
;Cascadia Mono","Segoe UI Mono","Liberation Mono",=
Menlo,Monaco,Consolas,monospace;font-size:13px">IMLIB2_LOADER_PATH</span>=
=C2=A0when I look online, but not sure that will help...</div><div><br></di=
v><div>First question though maybe. What has changed recently ?</div><div><=
br></div><div><font color=3D"#000000" face=3D"Menlo, Monaco, Consolas, Libe=
ration Mono, Bitstream Vera Sans Mono, Courier, Courier New, monospace"><sp=
an style=3D"font-size:14px;white-space:pre">Ian<br></span></font><div><br><=
/div><div><br></div></div></div><br><div class=3D"gmail_quote gmail_quote_c=
ontainer"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Mar 28, 2025 at 2:0=
4=E2=80=AFPM Ruben Safir <<a href=3D"mailto:[email protected]">ruben@mr=
brklyn.com</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">I have an old image gallery that uses this libary in apache2 and=
modperl<br>
<br>
I made a small test program is it behaves like the server code<br>
<br>
#!/usr/bin/perl<br>
use warnings;<br>
<br>
use Image::Imlib2;<br>
my $image;<br>
#my $pic =3D<br>
qq(/usr/local/apache2/htdocs/images/2025_purim_amsterdam/DSC03652.JPG);<br>
my $pic =3D qq(/home/ruben/20130303_133505.jpg);<br>
if (-e $pic) {<br>
=C2=A0print STDERR "File Exists =3D=3D> $pic\n";<br>
=C2=A0$image =3D Image::Imlib2->load($pic);<br>
}<br>
$image->save("/home/ruben/out.jpg");<br>
<br>
[ruben@www3 Image]$ ~/bin/<a href=3D"http://testimlib.pl" rel=3D"noreferrer=
" target=3D"_blank">testimlib.pl</a><br>
File Exists =3D=3D> /home/ruben/20130303_133505.jpg<br>
Image::Imlib2 load error: No loader for file format at<br>
/home/ruben/bin/<a href=3D"http://testimlib.pl" rel=3D"noreferrer" target=
=3D"_blank">testimlib.pl</a> line 10.<br>
<br>
the load() method seems to no longer recognize the file types to decode<br>
them.=C2=A0 It is very fustrating.=C2=A0 I looked at the code in<br>
<br>
/usr/local/lib/perl5/site_perl/5.26.1/x86_64-linux-thread-multi/Image/Imlib=
2.pm<br>
<br>
I can't even see the method load or where it might be inherited from<br=
>
<br>
package Image::Imlib2;<br>
<br>
use strict;<br>
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD);<br>
<br>
require Exporter;<br>
require DynaLoader;<br>
<br>
@ISA =3D qw(Exporter DynaLoader);<br>
<br>
# Items to export into callers namespace by default. Note: do not export<br=
>
# names by default without a very good reason. Use EXPORT_OK instead.<br>
# Do not simply export all your public functions/methods/constants.<br>
@EXPORT =3D qw(<br>
=C2=A0 =C2=A0 TEXT_TO_RIGHT<br>
=C2=A0 =C2=A0 TEXT_TO_LEFT<br>
=C2=A0 =C2=A0 TEXT_TO_UP<br>
=C2=A0 =C2=A0 TEXT_TO_DOWN<br>
=C2=A0 =C2=A0 TEXT_TO_ANGLE<br>
);<br>
$VERSION =3D '2.03';<br>
<br>
bootstrap Image::Imlib2 $VERSION;<br>
<br>
Image::Imlib2->set_cache_size(0);<br>
<br>
sub new_transparent {<br>
=C2=A0 =C2=A0 my ( $pkg, $x, $y ) =3D @_;<br>
=C2=A0 =C2=A0 my $pixel =3D pack( 'CCCC', 0, 0, 0, 0 );=C2=A0 =C2=
=A0 # ARGB<br>
=C2=A0 =C2=A0 return Image::Imlib2->new_using_data( $x, $y, $pixel x ( $=
x * $y ) );<br>
}<br>
<br>
sub new_using_data {<br>
=C2=A0 =C2=A0 my ( $pkg, $x, $y, $data ) =3D @_;<br>
=C2=A0 =C2=A0 if ( defined $data && 4 * $x * $y =3D=3D length $data=
) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return $pkg->_new_using_data( $x, $y, $data =
);<br>
=C2=A0 =C2=A0 } else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 return undef;<br>
=C2=A0 =C2=A0 }<br>
}<br>
<br>
sub autocrop {<br>
=C2=A0 =C2=A0 my $image =3D shift;<br>
=C2=A0 =C2=A0 my ( $x, $y, $w, $h ) =3D $image->autocrop_dimensions;<br>
=C2=A0 =C2=A0 return $image->crop( $x, $y, $w, $h );<br>
}<br>
<br>
1;<br>
<br>
<br>
<br>
It is not that large really.<br>
<br>
I do find it in the source code for the module in the C library<br>
<br>
[ruben@www3 Image]$ pwd<br>
/home/ruben/.cpan/build/Image-Imlib2-2.03-6/lib/Image<br>
[ruben@www3 Image]$<br>
[ruben@www3 Image]$ grep load ./*<br>
./Imlib2.c:XS_EUPXS(XS_Image__Imlib2_load); /* prototype to pass<br>
-Wmissing-prototypes */<br>
./Imlib2.c:XS_EUPXS(XS_Image__Imlib2_load)<br>
./Imlib2.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 image =
=3D imlib_load_image_with_error_return<br>
(filename, &err);<br>
./Imlib2.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 P=
erl_croak(aTHX_ "Image::Imlib2 load error:<br>
File does not exist");<br>
./Imlib2.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 P=
erl_croak(aTHX_ "Image::Imlib2 load error:<br>
File is directory");<br>
./Imlib2.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 P=
erl_croak(aTHX_ "Image::Imlib2 load error:<br>
Permission denied");<br>
./Imlib2.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 P=
erl_croak(aTHX_ "Image::Imlib2 load error:<br>
No loader for file format");<br>
./Imlib2.c:XS_EUPXS(XS_Image__Imlib2_load_font); /* prototype to pass<br>
-Wmissing-prototypes */<br>
./Imlib2.c:XS_EUPXS(XS_Image__Imlib2_load_font)<br>
./Imlib2.c:=C2=A0 =C2=A0 =C2=A0"Image::Imlib2::load_font",<br>
./Imlib2.c:=C2=A0 =C2=A0 font =3D imlib_load_font(fontname);<br>
./Imlib2.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 (void)newXSproto_portable("Imag=
e::Imlib2::load",<br>
XS_Image__Imlib2_load, file, "$$");<br>
./Imlib2.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 (void)newXSproto_portable("Imag=
e::Imlib2::load_font",<br>
XS_Image__Imlib2_load_font, file,<br>
<br>
I really need to fix this :(<br>
<br>
I would appreciate any help I can get. I never put a C program in perl<br>
code I don't even see how it inherited the load method or any<br>
constructor for image types.<br>
<br>
<br>
Seems in some source it has this =3D=3D><br>
=C2=A0CODE:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Imlib_Image image;<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Imlib_Load_Error er=
r;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 image =3D imlib_loa=
d_image_with_error_return (filename, &err);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (err =3D=3D IMLI=
B_LOAD_ERROR_FILE_DOES_NOT_EXIST) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Perl_croak(a=
THX_ "Image::Imlib2 load error: File does<br>
not exist");<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (err =3D=3D IMLI=
B_LOAD_ERROR_FILE_IS_DIRECTORY) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Perl_croak(a=
THX_ "Image::Imlib2 load error: File is<br>
directory");<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (err =3D=3D IMLI=
B_LOAD_ERROR_PERMISSION_DENIED_TO_READ) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Perl_croak(a=
THX_ "Image::Imlib2 load error: Permission<br>
denied");<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (err =3D=3D IMLI=
B_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Perl_croak(a=
THX_ "Image::Imlib2 load error: No loader<br>
for file format");<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 RETVAL =3D image;<b=
r>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
<br>
<a href=3D"https://metacpan.org/release/LBROCARD/Image-Imlib2-2.03/source/l=
ib/Image/Imlib2.xs#L156" rel=3D"noreferrer" target=3D"_blank">https://metac=
pan.org/release/LBROCARD/Image-Imlib2-2.03/source/lib/Image/Imlib2.xs#L156<=
/a><br>
<br>
<br>
Not sure how this is even called by the module.=C2=A0 It is not an ISA<br>
<br>
this line seems to be the black hole for me<br>
=C2=A0image =3D imlib_load_image_with_error_return (filename, &err);<br=
>
<br>
-- <br>
So many immigrant groups have swept through our town<br>
that Brooklyn, like Atlantis, reaches mythological<br>
proportions in the mind of the world - RI Safir 1998<br>
<a href=3D"http://www.mrbrklyn.com" rel=3D"noreferrer" target=3D"_blank">ht=
tp://www.mrbrklyn.com</a><br>
DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002<br>
<br>
<a href=3D"http://www.nylxs.com" rel=3D"noreferrer" target=3D"_blank">http:=
//www.nylxs.com</a> - Leadership Development in Free Software<br>
<a href=3D"http://www.brooklyn-living.com" rel=3D"noreferrer" target=3D"_bl=
ank">http://www.brooklyn-living.com</a><br>
<br>
Being so tracked is for FARM ANIMALS and extermination camps,<br>
but incompatible with living as a free human being. -RI Safir 2013<br>
</blockquote></div>
--000000000000fc9f480631681470--