Пример #1
0
 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'])
Пример #2
0
 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])
Пример #3
0
 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')
Пример #4
0
 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')
Пример #5
0
 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')
Пример #6
0
 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())
Пример #7
0
 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))
Пример #8
0
 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'])
Пример #9
0
 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())
Пример #10
0
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())
Пример #11
0
 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')
Пример #12
0
 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)
Пример #13
0
 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)
Пример #14
0
 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')
Пример #15
0
 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')
Пример #16
0
 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')
Пример #17
0
 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'))