code: def validate(self, instance, value):
          
          # Pass if already validated
          if getattr(value, '__valid__', False):
              return value
          # Validate that value is PNG
          if isinstance(value, png.Image):
              pass
          else:
              value = super(ImagePNG, self).validate(instance, value)
              try:
                  png.Reader(value).validate_signature()
              except png.FormatError:
                  self.error(instance, value, extra='Open file is not PNG.')
              value.seek(0)
          # Write input to new bytestream
          output = BytesIO()
          output.name = self.filename
          output.__valid__ = True
          if isinstance(value, png.Image):
              value.save(output)
          else:
              fid = value
              fid.seek(0)
              output.write(fid.read())
              fid.close()
          output.seek(0)
          return output
docs: Checks if value is an open PNG file, valid filename, or png.Image
  
          Returns an open bytestream of the image