Fix issue #427 - 2nd part
Fix Fl_Tiled_Image made from scaled source image. Fix Fl_Shared_Image::update() to allow scaled source image. Correct handling of default value (-1) of 3rd argument of 3-argument Fl_BMP_Image constructor.
This commit is contained in:
parent
02870242ee
commit
e698af035a
@ -103,7 +103,8 @@ Fl_BMP_Image::Fl_BMP_Image(const char *imagename, const unsigned char *data, con
|
||||
: Fl_RGB_Image(0,0,0)
|
||||
{
|
||||
Fl_Image_Reader rdr;
|
||||
if (rdr.open(imagename, data, length) == -1) {
|
||||
int retval = (length < 0 ? rdr.open(imagename, data) : rdr.open(imagename, data, (size_t)length));
|
||||
if (retval == -1) {
|
||||
ld(ERR_FILE_ACCESS);
|
||||
} else {
|
||||
load_bmp_(rdr);
|
||||
|
@ -190,10 +190,12 @@ Fl_Shared_Image::add() {
|
||||
void
|
||||
Fl_Shared_Image::update() {
|
||||
if (image_) {
|
||||
w(image_->w());
|
||||
h(image_->h());
|
||||
int W = w(), H = h();
|
||||
w(image_->data_w());
|
||||
h(image_->data_h());
|
||||
d(image_->d());
|
||||
data(image_->data(), image_->count());
|
||||
if (W && H) scale(W, H, 0, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -92,7 +92,9 @@ void
|
||||
Fl_Tiled_Image::color_average(Fl_Color c, // I - Color to blend with
|
||||
float i) { // I - Blend fraction
|
||||
if (!alloc_image_) {
|
||||
image_ = image_->copy();
|
||||
int W = image_->w(), H = image_->h();
|
||||
image_ = image_->copy(image_->data_w(), image_->data_h());
|
||||
image_->scale(W, H, 0, 1);
|
||||
alloc_image_ = 1;
|
||||
}
|
||||
|
||||
@ -107,7 +109,9 @@ Fl_Tiled_Image::color_average(Fl_Color c, // I - Color to blend with
|
||||
void
|
||||
Fl_Tiled_Image::desaturate() {
|
||||
if (!alloc_image_) {
|
||||
image_ = image_->copy();
|
||||
int W = image_->w(), H = image_->h();
|
||||
image_ = image_->copy(image_->data_w(), image_->data_h());
|
||||
image_->scale(W, H, 0, 1);
|
||||
alloc_image_ = 1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user