<delphi>wcina mi kolory ;/

0

cze
laduje do image obrazek bmp (konkretnie te male avatarki co sie podczas logowania wyswietlaja)

image2.picture.loadfromfile('C:\Documents and Settings\All Users\Dane aplikacji\Microsoft\User Account Pictures\Admin.bmp');

i wszystko ladnie sie laduje ale kolorki niepelne jakis ten obrazek fioletawy jkaby naglesi zrobilo z tym obrazkiem formatowanie i mial on tylko 16 kolorow kto wie czemu tak sie dzieje i jak temu zaradzic? :-O

0
image2.picture.bitmap.loadfromfile('obraz.bmp');
0

niestety ale neidziala dodanie

bitmap

;/ :/

0

image2.picture.graphics.bitmap.loadfromfile('obraz.bmp');

0

mi się wydaje że im dalej zagłębione tym gorzej tu i jeśli jest to imag2.loadfromfile - ale myślę że tu chodzi o to że jest ustawione stretched na true czy coś w tym rodzaju - pamiętam coś że bitmapy przy rozciąganiu traciły jakoś kolory - nie pamiętam dokładnie o so cho

0

nie....

rozwiązania nie znam, ale próbowałem... te obrazki z C:\Documents and Settings\All Users\Dane aplikacji\Microsoft\User Account Pictures nawet w zaladowane w do image przez ObjectInspectora sa "zrąbane"... nie wiem ale te w folderze głębiej (DefaultPictures) są wszystkie OK...

roznica jest taka ze te ktore sie źle ładują mają 96dpi a te dobre 95....... i tu jest chyba problem... ale co z nim zrobić?

0

Proponuję wczytać je do IrfanView i ewentualnie trochę przerobić (głębia kolorów czy coś takiego) i zapisać na dysk jako bmp. Czasami miałem podobne problemy i zapis do nieskompresowanej bitmapy pomagał.

0

no niestety ja nie moge sobie pozwolic na jakies przerobki w irfan view :/ chodzi mi o zaladowanie zwyczajne do image// z tego folderu glebiej co zauwazyliscie faktyczie wszystko elegancko wczytuje ale nie o nie mi chodzi ... pomocy!!!!!

0

a spróbUj doublebuffered:=true;

0

niestety nie dziala?
[glowa]

0

ort! chyba wiem w czym problem jak go rozwiąże do końca to napisze na forum lub na meila [!!!] [!!!]
[diabel] [diabel] hehe

Noo i ukończyłem rozwiązywanie tego nurtujące także i mnie pytanie

Otóż
Delphi nie wiadomo dlaczego domślnie w pliku bmp poszukuje danych od miejsca 54 a w pliku jest zapisane że ma szukać od 64 miejsca i stąd wziął się błąd

oto rozwiązanie

var plik:TFileStream;
    bit:TMemoryStream;
    naglowek:array[0..53] of byte;
    i:integer;
    b:byte;
begin
plik:=TFileStream.Create( nazwa pliku , fmOpenRead);
plik.Position:=0;
plik.Read(naglowek, sizeof(naglowek));
if naglowek[2] = 64 then //czy konwertowac plik
  begin
    naglowek[2]:=54;
    naglowek[10]:=54;
    bit:=TMemoryStream.Create;
    bit.position:=0;
    bit.Write(naglowek, sizeof(naglowek));
    for i:=64 to plik.Size-1 do
      begin
        Plik.Position:=i;
        Plik.Read(b, 1);
        bit.Position:=i-10;
        bit.Write(b, 1);
      end;
      bit.Position:=0;
    image1.Picture.Bitmap.LoadFromStream(bit);
  end
else
  begin
    Plik.Position:=0;
    image1.Picture.Bitmap.LoadFromStream(Plik);
  end;

mam nadzieje, że ort! jakby coś ort! to proszę pisać na [email protected] :-)

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