möchte ein bild zoomen. wenn ich dafür scale neutze dauert das zu lange.
bild hat knapp 5mb. gibt es ne möglichkeit einzelne zoomstufen zwischenzuspeichern und die dann jeweils abzurufen? wenn ja wie speicher ich die .png mit scalefaktor?
oder bietet qt noch andere möglichkeiten? wer hat damit schon erfahrung.
und nein, kann das bild nicht kleiner machen
oder wäre es besser und schneller ein tiff bild zu benutzen?
Ich habe sowas noch nicht probiert, aber im Tutorial arbeiten die mit adjustSize()... und wenn du ein Label benutzt klappt wahrscheinlich auch resize().. probier einfach mal ein bisschen.
Dann halte dir ein paar QImages mit verschiedenen Skalierungen im Speicher vor. Ein Bild von 1MB auf 0.8MB zu skalieren geht wesentlich schneller als es von %MB auf 0.8MB zu skalieren. Also quasi dein eigener Pixmapcache.
oder wäre es besser und schneller ein tiff bild zu benutzen?
Bitte überleg dir nochmal was Du da geschrieben hast !
vielleicht kann man mit tiff bildern besser umgehen?! zwar brauche ich dann tiffio aber das wäre ja nicht das problem. oder was gefällt dir an dem satzteil nicht?
und zu dem setLimitCache. wie benutze ich das? so gehts z.bsp. nicht:
if (!QPixmapCache::find("Karte", Karte)) {
QPixmapCache::setCacheLimit(6000);
Karte.load("/home/bachmann/img/map/munchen.png");
QPixmapCache::insert("Karte", Karte);}
Maik hat geschrieben:was ist an der frage verwirrend?
vielleicht kann man mit tiff bildern besser umgehen?! zwar brauche ich dann tiffio aber das wäre ja nicht das problem. oder was gefällt dir an dem satzteil nicht?
Im Speicher (QImage/QPixmap) gibts kein tiff und kein png...
Was soll der Codeausschnitt sagen? Ich dachte du willst skalieren? Dann sollte man die unterschiedlichen Skalierungen dort ablegen, oder? Und was heisst 'geht nicht'?
"The cache becomes full when the total size of all pixmaps in the cache exceeds cacheLimit(). The initial cache limit is 1024 KByte (1 MByte); it is changed with setCacheLimit(). A pixmap takes roughly width*height*depth/8 bytes of memory."
der code sollte zeigen das ich den cachelimit nicht ändern kann. bzw nicht so wie ich mir das vorstelle. und wenn ich den nicht einmal ändern kann brauche ich meine scalebilder nicht in ihm speichern. also muss ich zu aller erst den code den ich da gezeigt hatte zum laufen bringen oder nicht!
und kannst du mir sagen wieso ich den cache nicht hochsetzen kann? oder verstehe ich das mit dem setCacheLimit falsch?
Wie erkennst du dass der Cache nicht hochgesetzt wurde? mal mit http://doc.trolltech.com/3.3/qpixmapcache#cacheLimit nachgeschaut oder wird dein Bild einfach nicht gespeichert?
Wie gross ist Dein Bild überhaupt? Deswegen habe ich Dir den letzten Satz aus der Doku kopiert...