Pointer i TJPEGImage

0

Chce zapisywac w plikach typowanych rekord, w kotrym zawarty (m.in.) jest obrazek (w zmiennej typu Pointer). No i pojawil sie problem - w jaki sposob przekazac do pointera dane obrazka? Probowalem zapisywac obrazek do TMemoryStream, a pozniej do pointera wartosc Memory tego strumienia... ale to nic nie dawalo - zawsze zmienna miala po zapisie do pliku rozmiar 512 bajtow... Ma ktos pomysl jak to zrobic?
// PS. moglbym korzystac z obrazek.SaveToFile a potem BlockRead do zmiennej, ale zalezy mi na operacjach tylko na pamieci...

0

Chce zapisywac w plikach typowanych rekord, w kotrym zawarty (m.in.) jest obrazek (w zmiennej typu Pointer)

Sry, ale jaki to ma sens?

0
migajek napisał(a)

Chce zapisywac w plikach typowanych rekord, w kotrym zawarty (m.in.) jest obrazek (w zmiennej typu Pointer). No i pojawil sie problem - w jaki sposob przekazac do pointera dane obrazka? Probowalem zapisywac obrazek do TMemoryStream, a pozniej do pointera wartosc Memory tego strumienia... ale to nic nie dawalo - zawsze zmienna miala po zapisie do pliku rozmiar 512 bajtow... Ma ktos pomysl jak to zrobic?
// PS. moglbym korzystac z obrazek.SaveToFile a potem BlockRead do zmiennej, ale zalezy mi na operacjach tylko na pamieci...

Nie możesz tak zapisać do pliku, ponieważ zawsze zapisze się Tobie tylko skrót do pamięci (czyli akurat te 512B) gdzie są dane a nie same dane.
To jest tak jak byś chciał zapisać do pliku typ

array[1..1000]of pchar

zamiast array[1..1000]of char

 <owszem dane zapisze tu i tu, ale zobacz jak  ;P
no chyba, że źle zrozumiałem twój problem ;P
0

Wolverine: po tego, ze w rekordzie jest nie tylko plik, ale rowniez informacje o nim. Chodzi mi o indeksowanie plikow do miniaturek i zapis (czyli miniaturka, dane exif etc.) wszystkich razem - wiec opieram sie na plikach typowanych.
maxwklb: chyba dobrze rozumiesz :) Na to co zapisuje to i ja wpadlem - mnie interesuje jak zapisac "zawartosc" :)
Ma ktos jakis pomysl? [sciana]

0

Chyba się nie da w taki sposób, bo obrazek nie ma stałej wielkości. Proponuję użyć strumieni, będziesz mógł wykorzystać SaveToStream().

0

thenkles : gdybys doczytal mojego posta to bys sie dowiedzial,ze tez tak probowalem : na TMemoryStream. Zapisywalem (Jpeg.SaveToStream) ale nie wiedzialem jak zapisac dane ze streama - wystepowal ten sam problem co przy zapisie obrazka [sciana]

0

Doczytałem. Ale mam na myśli to, żeby wszystko zapisywać w strumieniu. Bo, jak już sam sprawdziłeś, nie zapiszesz tego potem tak, jak chcesz.

0

to znaczy zeby po zapisaniu do strumienia obrazka, dopisywac "reszte" rekordu? Hmm... To w takim razie, trza by na poczatku zapisywac rozmiar obrazka (bo jest zmienny), a pozniej odczytywac go, sumowac ze stalym rozmiarem rekordu i odczytywac... Chyba... Sprobuje :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1