def test_set_transparency_info(self): png = PngInfo(os.path.join(self.suite, 'tbbn2c16.png')) self.assertTrue(png.chunks['tRNS'] is not None) self.assertEqual( '\n' ' Red: 65535\n' ' Green: 65535\n' ' Blue: 65535\n', png.info['Transparency'])
def test_set_significant_bits_info(self): png = PngInfo(os.path.join(self.suite, 'cdhn2c08.png')) name = 'Number of significant bits' self.assertTrue(png.chunks['sBIT'] is not None) self.assertEqual( '\n' ' In red: 4\n' ' In green: 4\n' ' In blue: 4\n', png.info[name])
def test_set_info_from_header(self): png = PngInfo(os.path.join(self.suite, 'basn0g01.png')) self.assertTrue(png.chunks['IHDR'] is not None) self.assertEqual(png.info['Width'], 32) self.assertEqual(png.info['Height'], 32) self.assertEqual(png.info['Bit depth'], 1) self.assertEqual(png.info['Color type'], '0 (Grayscale)') self.assertEqual(png.info['Compression method'], '0 (Deflate/Inflate)') self.assertEqual(png.info['Filter method'], '0 (Adaptive)') self.assertEqual(png.info['Interlace method'], '0 (Noninterlaced)\n')
def test_set_chromaticities_info(self): png = PngInfo(os.path.join(self.suite, 'ccwn2c08.png')) self.assertTrue(png.parser.chunks['cHRM'] is not None) self.assertEqual(png.info['White point x'], '31270') self.assertEqual(png.info['White point y'], '32900') self.assertEqual(png.info['Red x'], '64000') self.assertEqual(png.info['Red y'], '33000') self.assertEqual(png.info['Green x'], '30000') self.assertEqual(png.info['Green y'], '60000') self.assertEqual(png.info['Blue x'], '15000') self.assertEqual(png.info['Blue y'], '6000\n')
def test_set_zip_text_info(self): png = PngInfo(os.path.join(self.suite, 'ctzn0g04.png')) self.assertTrue(png.parser.chunks['zTXt'] != []) self.assertEqual(png.info['Copyright'].strip(), 'Copyright Willem van Schaik, Singapore 1995-96')
def test_set_text_info(self): png = PngInfo(os.path.join(self.suite, 'ct1n0g04.png')) self.assertTrue(png.parser.chunks['tEXt'] != []) self.assertEqual('PngSuite', png.info['Title'].strip())
def test_set_iccp_profile_info(self): png = PngInfo(os.path.join(self.pictures_dir, 'eggs.png')) self.assertTrue(png.parser.chunks['iCCP'] is not None) profile = png.info['Embedded Profile'].split('\n') self.assertEqual(81, len(profile))
def test_set_rendering_intent_info(self): png = PngInfo(os.path.join(self.pictures_dir, 'Brandon.png')) self.assertTrue(png.parser.chunks['sRGB'] is not None) self.assertEqual('Perceptual\n', png.info['Rendering intent'])
def test_set_gamma_info(self): png = PngInfo(os.path.join(self.suite, 'tbbn2c16.png')) self.assertTrue(png.chunks['gAMA'] is not None) self.assertEqual('1.0', png.info['Gamma'].strip())
from graphic import MainWindow from PyQt5.QtWidgets import QApplication def try_start_console_mode(): info = 'PNG Decoder. Check README for detailed information' parser = argparse.ArgumentParser(description=info) parser.add_argument('-f', '--file', type=str, help='print png file info into console') args = parser.parse_args() return args.file if __name__ == '__main__': filename = try_start_console_mode() if filename: try: print(PngInfo(filename)) except AttributeError as e: print(e.args[0]) exit() app = QApplication(sys.argv) png_parser_window = MainWindow() sys.exit(app.exec())
def test_set_time_info(self): png = PngInfo(os.path.join(self.suite, 'cm0n0g04.png')) self.assertTrue(png.parser.chunks['tIME'] is not None) self.assertEqual(png.info['Last modification time'], '2000-1-1 12:34:56\n')
def test_set_palette_histogram_info(self): png = PngInfo(os.path.join(self.suite, 'ch2n3p08.png')) self.assertTrue(png.chunks['hIST'] is not None) entry = png.info['Palette histogram'].split('\n')[1] self.assertEqual(' Approximate of using 0 color in palette: 4', entry)
def test_set_suggested_palette_info(self): png = PngInfo(os.path.join(self.suite, 'ps1n0g08.png')) self.assertTrue(png.chunks['sPLT'] is not None) entry = png.info['six-cube'].split('\n')[1] self.assertEqual(' [0] - R:0 G:0 B:0 A:255 Frequency:0', entry)
def test_set_pixel_dimensions_info(self): png = PngInfo(os.path.join(self.suite, 'cdhn2c08.png')) self.assertTrue(png.chunks['pHYs'] is not None) self.assertEqual(png.info['Pixels per unit, X axis'], 4) self.assertEqual(png.info['Pixels per unit, Y axis'], 1) self.assertEqual(png.info['Unit'], 'Unknown\n')
def test_set_international_text_info(self): png = PngInfo(os.path.join(self.suite, 'ctfn0g04.png')) self.assertTrue(png.parser.chunks['iTXt'] != []) self.assertEqual( png.info['Title'].strip(), '(lang: None, keyword: fi)\n' ' Otsikko\x00PngSuite')
def test_set_background_color_info(self): png = PngInfo(os.path.join(self.suite, 'bggn4a16.png')) self.assertTrue(png.parser.chunks['bKGD'] is not None) self.assertEqual(png.info['Background color'].strip(), 'Gray: 43908')
def update(self): if self.main_window.current_file is not None: self.image_info = PngInfo(self.main_window.current_file) self.image_info_list.addItems(str(self.image_info).split('\n'))