🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
4 messages
4 total messages Started by Parasit Sat, 12 Oct 2013 21:21
pygame i wielkość obrazka
#28477
Author: Parasit
Date: Sat, 12 Oct 2013 21:21
25 lines
1946 bytes
Witam,
Mam pytanie do znawców pygame, jak mogę uzyskać wielkość (w kb) obrazka wczytanego i skonwertowanego przez pygame? Chciałbym wiedzieć ile pamięci zajmują mi aktualnie wszystkie wczytane obrazki.

Robię coś takiego:

aa = pygame.image.load(filename).convert()
print sys.getsizeof(aa)

i dostaję "64" niezależnie od wielkości pliku.

A wiem że jeden obrazek ma 32kb a drugi 1,9mb, więc podejrzewam że to wielkość jakiegoś wskaźnika a nie samego obrazka

Jedyne co "wymyśliłem" to zrzucić to do stringa:

print "Size %d" % sys.getsizeof(pygame.image.tostring(aa, "RGBA"))

Dostałem odpowiednio:

Size 637 
Size 39923749 

38mb? Też coś nie bardzo, jak to ogarnąć? 

Pozdrawiam
Parasit
Re: pygame i wielkość obrazka
#28478
Author: Mikolaj Machowski
Date: Sun, 13 Oct 2013 08:27
31 lines
2158 bytes
Parasit napisał:
> Witam,
> Mam pytanie do znawców pygame, jak mogę uzyskać wielkość (w kb) obrazka wczytanego i skonwertowanego przez pygame? Chciałbym wiedzieć ile pamięci zajmują mi aktualnie wszystkie wczytane obrazki.
>
> Robię coś takiego:
>
> aa = pygame.image.load(filename).convert()
> print sys.getsizeof(aa)
>
> i dostaję "64" niezależnie od wielkości pliku.
>
> A wiem że jeden obrazek ma 32kb a drugi 1,9mb, więc podejrzewam że to wielkość jakiegoś wskaźnika a nie samego obrazka
>
> Jedyne co "wymyśliłem" to zrzucić to do stringa:
>
> print "Size %d" % sys.getsizeof(pygame.image.tostring(aa, "RGBA"))
>
> Dostałem odpowiednio:
>
> Size 637 
> Size 39923749 
>
> 38mb? Też coś nie bardzo, jak to ogarnąć? 

W jakim formacie są obrazki? Jeśli JPG to do 'obróbki' w pamięci
komputer musi rozpakować go do bitmapy i ta wielkość się liczy. Bitmapa
20x większa od JPG to sporo (przy dobrej jakości kompresji różnica jest
zazwyczaj 10x), ale nie niemożliwe. Być może pygame z jakichś powodów
przechowuje bitmapę dwukrotnie?

m.
Re: pygame i wielkość obrazka
#28479
Author: Parasit
Date: Thu, 17 Oct 2013 16:47
11 lines
1971 bytes
W dniu niedziela, 13 października 2013 10:27:48 UTC+2 użytkownik Mikolaj Machowski napisał:

> W jakim formacie są obrazki? Jeśli JPG to do 'obróbki' w pamięci
> komputer musi rozpakować go do bitmapy i ta wielkość się liczy. Bitmapa
> 20x większa od JPG to sporo (przy dobrej jakości kompresji różnica jest
> zazwyczaj 10x), ale nie niemożliwe. Być może pygame z jakichś powodów
> przechowuje bitmapę dwukrotnie?

Ten duży to był rzeczywiście jpg, ale ten mały to był png. Tak czy inaczej sprowadzanie obiektu do tekstu to chyba nadal kiepski pomysł na sprawdzenie zajętości pamięci :/

Pozdrawiam
Re: pygame i wielkość obrazka
#28480
Author: AK
Date: Thu, 17 Oct 2013 19:56
15 lines
1527 bytes
Użytkownik "Parasit" <bartosz.bubak@gmail.com> napisał:

> Ten duży to był rzeczywiście jpg, ale ten mały to był png.
> Tak czy inaczej sprowadzanie obiektu do tekstu to chyba
> nadal kiepski pomysł na sprawdzenie zajętości pamięci :/

Spróbuj:

view = memoryview(obrazek)
print len(view)

PS: 'obrazek' musi wspierac "buffer protocol"
      Nie uzywam pygame wiec nie jestem w stanie sprawdzic czy wspiara/zadziala.

AK
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads