Re: Bad behaviour with really extreme images
"Ilya Konkov" <[email protected]> Thu, 24 Jul 2008 20:43:44 +0600
| Newsgroups | gmane.comp.kde.gwenview |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Jul 24, 2008 at 5:51 PM, Aurélien Gâteau <[email protected]> wrote: > Ilya Konkov wrote: >> Hello, >> >> I undestand that this is really not very usable case, but anyway: >> >> QImage image(1, 10000, QImage::Format_Mono); >> image.fill(0); >> image.save("image.png", "PNG"); >> >> Opening this image with gwenview gives: >> ASSERT: "!image.isNull()" in file >> /home/eruart/app/kdesvn/kdegraphics/gwenview/lib/imagescaler.cpp, line >> 145 > > Interesting, maybe we should check that we don't try to resize to > something less than 1 pixel width or height? I guess what's happening > here is that width() / mZoom returns something too close to 0. Can you > check this? > > Aurélien > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Gwenview-general mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/gwenview-general > Ok. With this changes gwenview doesn't fall on png image: Index: lib/document/document.cpp =================================================================== --- lib/document/document.cpp (revision 837350) +++ lib/document/document.cpp (working copy) @@ -330,6 +330,11 @@ if (loadingState() == Loaded) { // Resample image from the full one d->mDownSampledImageMap[invertedZoom] = d->mImage.scaled(d->mImage.size() / invertedZoom, Qt::KeepAspectRatio, Qt::FastTransformation); + kDebug() << "d->mDownSampledImageMap[invertedZoom].size()" << d->mDownSampledImageMap[invertedZoom].size(); + if (!d->mDownSampledImageMap[invertedZoom].size().isValid()) { + d->mDownSampledImageMap[invertedZoom] = d->mImage; + return false; + } return true; } And output: gwenview(21254) Gwenview::Document::prepareDownSampledImageForZoom: d->mDownSampledImageMap[invertedZoom].size() QSize(-1, -1) QPainter::begin: Cannot paint on a null pixmap QPainter::setCompositionMode: Painter not active But still fails to open .jpg image: Program received signal SIGFPE, Arithmetic exception. [Switching to Thread 0xb4424b90 (LWP 21595)] 0xb7ebddbd in ?? () from /home/eruart/app/kde/lib/libgwenviewlib.so.4 (gdb) Continuing. KCrash: crashing... crashRecursionCounter = 2 KCrash: Application Name = gwenview path = <unknown> pid = 21586 sock_file=/home/eruart//.kde4/socket-eNote/kdeinit4__0 gwenview: Fatal IO error: client killed -- Ilya Konkov ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Gwenview-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/gwenview-general