Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re^3: wxPerl: is BitmapFromImage implemented?

by jmlynesjr (Hermit)
on Apr 29, 2013 at 15:09 UTC ( #1031231=note: print w/replies, xml ) Need Help??

in reply to Re^2: wxPerl: is BitmapFromImage implemented?
in thread wxPerl: is BitmapFromImage implemented?

Helen, good question...

No idea off hand. Seems I read about sizers that the control "communicates" a minimum size to the sizer process. Maybe there is a clue there. Most of the documentation refers to stretching controls not compressing them. Your "kludge" may be the way to go, at least until another idea surfaces.

Once again from the wxBook(well worth $38 to Amazon):

"(Sizers)...It is based upon the idea of individual windows reporting their minimal required size and their ability to be stretched if the size of the parent window has changed. This will most often mean that the programmer does not set the initial size of the dialog; instead, the dialog will be assigned a sizer, which will be queried about the recommended size....The minimal size of a control is calculated from the control's notion of it's "best size"(supplied by implementing DoGetBestSize for each control)....However, if you want the initial window size(as passed to the window's constructor) to be used as the initial minimum size instead, you can use the wxFIXED_MINSIZE style when adding the control to the sizer. Note that only some windows can calculate their size....whereas others....don't have any natural width or height and thus require an explicit size."

Update1: The Wx::Image::Rescale seems to work. Try a subset of this in your resize event handler. Two scaling qualities are supported: wxIMAGE_QUALITY_NORMAL and wxIMAGE_QUALITY_HIGH(better quality but slower).

Wx::InitAllImageHandlers; $img = Wx::Image->new($parms{image_fname}, wxBITMAP_TYPE_ANY); my $h = $img->GetHeight; my $w = $img->GetWidth; $img->Rescale($w-150, $h-50); my $bmp = Wx::Bitmap->new($img); $sb = Wx::StaticBitmap->new($panel, -1, $bmp);

Update2: Fixed a typo.

Update3: Seems you may want to scale from the original Wx::Image each time to avoid compounding any scaling artifacts/losses of resolution.


There's never enough time to do it right, but always enough time to do it over...

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1031231]
[shmem]: hmm after some looping I get it via http
[choroba]: After submitting the form, I'm getting "Sorry, we're really busy right now, please wait for a bit. This page will automagically refresh soon"
[hippo]: Still nothing via https
marto pictures someone trying to fix a problem, while the page gets battered by F5s :P
[hippo]: Who maintains deps? Is it barbie?

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (15)
As of 2018-02-20 12:01 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (271 votes). Check out past polls.