320 QTest::newRow("PPM: teapot") << "teapot" << QSize(200, 200) << QByteArray("ppm"); |
321 QTest::newRow("PPM: teapot") << "teapot" << QSize(200, 200) << QByteArray("ppm"); |
321 QTest::newRow("PPM: runners") << "runners.ppm" << QSize(400, 400) << QByteArray("ppm"); |
322 QTest::newRow("PPM: runners") << "runners.ppm" << QSize(400, 400) << QByteArray("ppm"); |
322 QTest::newRow("PPM: test") << "test.ppm" << QSize(10, 10) << QByteArray("ppm"); |
323 QTest::newRow("PPM: test") << "test.ppm" << QSize(10, 10) << QByteArray("ppm"); |
323 QTest::newRow("XBM: gnus") << "gnus" << QSize(200, 200) << QByteArray("xbm"); |
324 QTest::newRow("XBM: gnus") << "gnus" << QSize(200, 200) << QByteArray("xbm"); |
324 #ifdef QTEST_HAVE_JPEG |
325 #ifdef QTEST_HAVE_JPEG |
325 QTest::newRow("JPEG: beavis") << "beavis" << QSize(200, 200) << QByteArray("jpeg"); |
326 QTest::newRow("JPEG: beavis A") << "beavis" << QSize(200, 200) << QByteArray("jpeg"); |
|
327 QTest::newRow("JPEG: beavis B") << "beavis" << QSize(175, 175) << QByteArray("jpeg"); |
|
328 QTest::newRow("JPEG: beavis C") << "beavis" << QSize(100, 100) << QByteArray("jpeg"); |
|
329 QTest::newRow("JPEG: beavis D") << "beavis" << QSize(100, 200) << QByteArray("jpeg"); |
|
330 QTest::newRow("JPEG: beavis E") << "beavis" << QSize(200, 100) << QByteArray("jpeg"); |
|
331 QTest::newRow("JPEG: beavis F") << "beavis" << QSize(87, 87) << QByteArray("jpeg"); |
|
332 QTest::newRow("JPEG: beavis G") << "beavis" << QSize(50, 45) << QByteArray("jpeg"); |
|
333 QTest::newRow("JPEG: beavis H") << "beavis" << QSize(43, 43) << QByteArray("jpeg"); |
|
334 QTest::newRow("JPEG: beavis I") << "beavis" << QSize(25, 25) << QByteArray("jpeg"); |
326 #endif // QTEST_HAVE_JPEG |
335 #endif // QTEST_HAVE_JPEG |
327 #ifdef QTEST_HAVE_GIF |
336 #ifdef QTEST_HAVE_GIF |
328 QTest::newRow("GIF: earth") << "earth" << QSize(200, 200) << QByteArray("gif"); |
337 QTest::newRow("GIF: earth") << "earth" << QSize(200, 200) << QByteArray("gif"); |
329 QTest::newRow("GIF: trolltech") << "trolltech" << QSize(200, 200) << QByteArray("gif"); |
338 QTest::newRow("GIF: trolltech") << "trolltech" << QSize(200, 200) << QByteArray("gif"); |
330 #endif // QTEST_HAVE_GIF |
339 #endif // QTEST_HAVE_GIF |
727 int i = 0; |
743 int i = 0; |
728 while(!image.isNull()){ |
744 while(!image.isNull()){ |
729 QString frameName = QString(":images/qt%1.gif").arg(++i); |
745 QString frameName = QString(":images/qt%1.gif").arg(++i); |
730 QCOMPARE(image, QImage(frameName)); |
746 QCOMPARE(image, QImage(frameName)); |
731 image = io.read(); |
747 image = io.read(); |
|
748 } |
|
749 } |
|
750 |
|
751 // http://bugreports.qt.nokia.com/browse/QTBUG-6696 |
|
752 // Check the count of images in various call orders... |
|
753 void tst_QImageReader::gifImageCount() |
|
754 { |
|
755 // just read every frame... and see how much we got.. |
|
756 { |
|
757 QImageReader io(":images/four-frames.gif"); |
|
758 |
|
759 QVERIFY(io.canRead()); |
|
760 QImage blackFrame = io.read(); |
|
761 |
|
762 QVERIFY(io.canRead()); |
|
763 QImage whiteFrame = io.read(); |
|
764 |
|
765 QVERIFY(io.canRead()); |
|
766 QImage greenFrame = io.read(); |
|
767 |
|
768 QVERIFY(io.canRead()); |
|
769 QImage blueFrame = io.read(); |
|
770 |
|
771 QVERIFY(!io.canRead()); |
|
772 QImage emptyFrame = io.read(); |
|
773 |
|
774 QVERIFY(!io.canRead()); |
|
775 QCOMPARE(blackFrame.pixel(0,0), qRgb(0, 0, 0)); |
|
776 QCOMPARE(blackFrame.size(), QSize(64,64)); |
|
777 |
|
778 QCOMPARE(whiteFrame.pixel(0,0), qRgb(0xff, 0xff, 0xff)); |
|
779 QCOMPARE(whiteFrame.size(), QSize(64,64)); |
|
780 |
|
781 QCOMPARE(greenFrame.pixel(0,0), qRgb(0x0, 0xff, 0x0)); |
|
782 QCOMPARE(greenFrame.size(), QSize(64,64)); |
|
783 |
|
784 QCOMPARE(blueFrame.pixel(0,0), qRgb(0x0, 0x0, 0xff)); |
|
785 QCOMPARE(blueFrame.size(), QSize(64,64)); |
|
786 QVERIFY(emptyFrame.isNull()); |
|
787 } |
|
788 |
|
789 // Read and get the size |
|
790 { |
|
791 QImageReader io(":images/four-frames.gif"); |
|
792 |
|
793 QVERIFY(io.canRead()); |
|
794 QCOMPARE(io.size(), QSize(64,64)); |
|
795 |
|
796 QVERIFY(io.canRead()); |
|
797 QCOMPARE(io.size(), QSize(64,64)); |
|
798 QCOMPARE(io.size(), QSize(64,64)); |
|
799 QVERIFY(io.canRead()); |
|
800 QImage blackFrame = io.read(); |
|
801 |
|
802 QVERIFY(io.canRead()); |
|
803 QCOMPARE(io.size(), QSize(64,64)); |
|
804 QCOMPARE(io.size(), QSize(64,64)); |
|
805 QVERIFY(io.canRead()); |
|
806 QImage whiteFrame = io.read(); |
|
807 |
|
808 QVERIFY(io.canRead()); |
|
809 QCOMPARE(io.size(), QSize(64,64)); |
|
810 QCOMPARE(io.size(), QSize(64,64)); |
|
811 QVERIFY(io.canRead()); |
|
812 QImage greenFrame = io.read(); |
|
813 |
|
814 QVERIFY(io.canRead()); |
|
815 QCOMPARE(io.size(), QSize(64,64)); |
|
816 QCOMPARE(io.size(), QSize(64,64)); |
|
817 QVERIFY(io.canRead()); |
|
818 QImage blueFrame = io.read(); |
|
819 |
|
820 QVERIFY(!io.canRead()); |
|
821 QCOMPARE(io.size(), QSize()); |
|
822 QCOMPARE(io.size(), QSize()); |
|
823 QVERIFY(!io.canRead()); |
|
824 QImage emptyFrame = io.read(); |
|
825 |
|
826 QVERIFY(!io.canRead()); |
|
827 QCOMPARE(blackFrame.pixel(0,0), qRgb(0, 0, 0)); |
|
828 QCOMPARE(blackFrame.size(), QSize(64,64)); |
|
829 |
|
830 QCOMPARE(whiteFrame.pixel(0,0), qRgb(0xff, 0xff, 0xff)); |
|
831 QCOMPARE(whiteFrame.size(), QSize(64,64)); |
|
832 |
|
833 QCOMPARE(greenFrame.pixel(0,0), qRgb(0x0, 0xff, 0x0)); |
|
834 QCOMPARE(greenFrame.size(), QSize(64,64)); |
|
835 |
|
836 QCOMPARE(blueFrame.pixel(0,0), qRgb(0x0, 0x0, 0xff)); |
|
837 QCOMPARE(blueFrame.size(), QSize(64,64)); |
|
838 QVERIFY(emptyFrame.isNull()); |
|
839 } |
|
840 |
|
841 // Do a Size query as substitute for canRead |
|
842 { |
|
843 QImageReader io(":images/four-frames.gif"); |
|
844 |
|
845 QCOMPARE(io.size(), QSize(64,64)); |
|
846 QCOMPARE(io.size(), QSize(64,64)); |
|
847 QImage blackFrame = io.read(); |
|
848 |
|
849 QCOMPARE(io.size(), QSize(64,64)); |
|
850 QCOMPARE(io.size(), QSize(64,64)); |
|
851 QImage whiteFrame = io.read(); |
|
852 |
|
853 QCOMPARE(io.size(), QSize(64,64)); |
|
854 QCOMPARE(io.size(), QSize(64,64)); |
|
855 QImage greenFrame = io.read(); |
|
856 |
|
857 QCOMPARE(io.size(), QSize(64,64)); |
|
858 QCOMPARE(io.size(), QSize(64,64)); |
|
859 QImage blueFrame = io.read(); |
|
860 |
|
861 QCOMPARE(io.size(), QSize()); |
|
862 QVERIFY(!io.canRead()); |
|
863 QImage emptyFrame = io.read(); |
|
864 |
|
865 QVERIFY(!io.canRead()); |
|
866 QCOMPARE(blackFrame.pixel(0,0), qRgb(0, 0, 0)); |
|
867 QCOMPARE(blackFrame.size(), QSize(64,64)); |
|
868 |
|
869 QCOMPARE(whiteFrame.pixel(0,0), qRgb(0xff, 0xff, 0xff)); |
|
870 QCOMPARE(whiteFrame.size(), QSize(64,64)); |
|
871 |
|
872 QCOMPARE(greenFrame.pixel(0,0), qRgb(0x0, 0xff, 0x0)); |
|
873 QCOMPARE(greenFrame.size(), QSize(64,64)); |
|
874 |
|
875 QCOMPARE(blueFrame.pixel(0,0), qRgb(0x0, 0x0, 0xff)); |
|
876 QCOMPARE(blueFrame.size(), QSize(64,64)); |
|
877 QVERIFY(emptyFrame.isNull()); |
732 } |
878 } |
733 } |
879 } |
734 #endif |
880 #endif |
735 |
881 |
736 class Server : public QObject |
882 class Server : public QObject |