Pointer i TJPEGImage

migajek
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 6 lat
  • Postów:370
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...


Wolverine
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 6 lat
0

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

Sry, ale jaki to ma sens?


maxwklb
  • Rejestracja:około 20 lat
  • Ostatnio:prawie 20 lat
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

Kopiuj
array[1..1000]of pchar

zamiast array[1..1000]of char

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

[??????? 44% ]
migajek
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 6 lat
  • Postów:370
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]


TH
  • Rejestracja:około 23 lata
  • Ostatnio:około 13 lat
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().

migajek
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 6 lat
  • Postów:370
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]


TH
  • Rejestracja:około 23 lata
  • Ostatnio:około 13 lat
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.

migajek
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 6 lat
  • Postów:370
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 :)


Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.