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_RGB_Image(0,0,0)
|
||||||
{
|
{
|
||||||
Fl_Image_Reader rdr;
|
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);
|
ld(ERR_FILE_ACCESS);
|
||||||
} else {
|
} else {
|
||||||
load_bmp_(rdr);
|
load_bmp_(rdr);
|
||||||
|
@ -190,10 +190,12 @@ Fl_Shared_Image::add() {
|
|||||||
void
|
void
|
||||||
Fl_Shared_Image::update() {
|
Fl_Shared_Image::update() {
|
||||||
if (image_) {
|
if (image_) {
|
||||||
w(image_->w());
|
int W = w(), H = h();
|
||||||
h(image_->h());
|
w(image_->data_w());
|
||||||
|
h(image_->data_h());
|
||||||
d(image_->d());
|
d(image_->d());
|
||||||
data(image_->data(), image_->count());
|
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
|
Fl_Tiled_Image::color_average(Fl_Color c, // I - Color to blend with
|
||||||
float i) { // I - Blend fraction
|
float i) { // I - Blend fraction
|
||||||
if (!alloc_image_) {
|
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;
|
alloc_image_ = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,7 +109,9 @@ Fl_Tiled_Image::color_average(Fl_Color c, // I - Color to blend with
|
|||||||
void
|
void
|
||||||
Fl_Tiled_Image::desaturate() {
|
Fl_Tiled_Image::desaturate() {
|
||||||
if (!alloc_image_) {
|
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;
|
alloc_image_ = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user