Ejemplo n.º 1
0
    def pixbuf_from_bytes(b, width, height):
        """Создаёт и возвращает Gdk.Pixbuf из b - экземпляра GLib.Bytes.

        width, height - размеры создаваемого изображения в пикселах."""

        return Pixbuf.new_from_stream_at_scale(Gio.MemoryInputStream.new_from_bytes(b),
            width, height, True)
Ejemplo n.º 2
0
        def complete(manga_data, server):
            if server != self.server or manga_data['slug'] != self.manga_slug:
                return False

            self.manga_data = manga_data

            # Populate manga card
            try:
                cover_data = self.server.get_manga_cover_image(
                    self.manga_data.get('cover'))
            except Exception as e:
                cover_data = None
                user_error_message = log_error_traceback(e)
                if user_error_message:
                    self.show_notification(user_error_message)

            if cover_data is not None:
                cover_stream = Gio.MemoryInputStream.new_from_data(
                    cover_data, None)
                pixbuf = Pixbuf.new_from_stream_at_scale(
                    cover_stream, 174, -1, True, None)
            else:
                pixbuf = Pixbuf.new_from_resource_at_scale(
                    '/info/febvre/Komikku/images/missing_file.png', 174, -1,
                    True)

            self.builder.get_object('cover_image').set_from_pixbuf(pixbuf)

            self.builder.get_object('authors_value_label').set_markup(
                '<span size="small">{0}</span>'.format(
                    ', '.join(self.manga_data['authors']
                              ) if self.manga_data['authors'] else '-'))
            self.builder.get_object('genres_value_label').set_markup(
                '<span size="small">{0}</span>'.format(
                    ', '.join(self.manga_data['genres']
                              ) if self.manga_data['genres'] else '-'))
            self.builder.get_object('status_value_label').set_markup(
                '<span size="small">{0}</span>'.
                format(_(Manga.STATUSES[self.manga_data['status']])
                       ) if self.manga_data['status'] else '-')
            self.builder.get_object('scanlators_value_label').set_markup(
                '<span size="small">{0}</span>'.format(
                    ', '.join(self.manga_data['scanlators']
                              ) if self.manga_data['scanlators'] else '-'))
            self.builder.get_object('server_value_label').set_markup(
                '<span size="small"><a href="{0}">{1} [{2}]</a>\n{3} chapters</span>'
                .format(
                    self.server.get_manga_url(self.manga_data['slug'],
                                              self.manga_data.get('url')),
                    html.escape(self.server.name), self.server.lang.upper(),
                    len(self.manga_data['chapters'])))

            self.builder.get_object('synopsis_value_label').set_text(
                self.manga_data['synopsis'] or '-')

            self.activity_indicator.stop()
            self.show_page('manga')

            return False
Ejemplo n.º 3
0
Archivo: view.py Proyecto: bidd/ipm
	def get_image(self, url):
		try:
			response = urllib2.urlopen(url) 
			input_stream = Gio.MemoryInputStream.new_from_data(response.read(), None) 
			pixbuf = Pixbuf.new_from_stream_at_scale(input_stream, -1, 400, True, None) 
		except ValueError:
			pixbuf = None
		except :
			pixbuf = None
		return pixbuf
Ejemplo n.º 4
0
 def run(self):
     log_debug('RefreshPixbuf run {}'.format(self.url))
     response = urlopen(self.url)
     if not response:
         return
     input_stream = Gio.MemoryInputStream.new_from_data(
         response.read(), None)
     if not input_stream:
         return
     self.props.pixbuf = Pixbuf.new_from_stream_at_scale(
         input_stream, 64, 64, True, None)
     return
Ejemplo n.º 5
0
    def pixbuf_from_bytes(b, width, height):
        """Создаёт и возвращает экземпляр Gdk.Pixbuf.

        b       - экземпляр GLib.Bytes с данными в формате PNG/JPG/...,
        width,
        height  - целые, размеры изображения в пикселах, если нужен
                  определённый размер;
                  для загрузки "как есть" следует указывать значения
                  <=0 или None."""

        if isinstance(width, int) and width > 0:
            return Pixbuf.new_from_stream_at_scale(Gio.MemoryInputStream.new_from_bytes(b),
                    width, height, None)
        else:
            return Pixbuf.new_from_stream(Gio.MemoryInputStream.new_from_bytes(b), None)