Форум: "Media";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];
ВнизКак не зависеть от кол. цветов Descktop а ? Найти похожие ветки
← →
Ascan_ (2002-09-18 14:30) [0]Есть код:
bmp:= TBitmap.Create;
jpg := TJpegImage.Create;
jpg.LoadFromFile("file.jpg");
bmp.Assign(jpg);
jpg.free;
bmp.Canvas.Pixels[1,1]:= $707070;
Так вот: если у тебя выставлено Hicolor (16bit) на экране, то по адресу [1,1] будет лежать действительно $707070.
А если у тебя стоит 256 цветов, то и мечтать не стоит о том, что вычитаешь записаное. В данном случае вычитаешь $777777...
Что порекомендуете?
← →
MBo (2002-09-18 14:43) [1]создать в bitmap свою 256-цветную палитру, например, с помощью SetDIBColorTable
← →
Ascan_ (2002-09-18 14:55) [2]MBo,
А как сделать так, чтобы работать с палитрой, записанной в файле "file.jpg"? Дело в том, что я хочу рабоать с оригинальными цветами картинки.
А то получается, что картинка 16мил. цв., а загружаю ее, а она уже с палитрой в 256 цветов.
← →
MBo (2002-09-18 15:14) [3]bitmap.pixelformat:=pf24bit;
после этого вставляй туда Jpeg
procedure TForm1.Button1Click(Sender: TObject);
var
j:tjpegimage;
b:tbitmap;
begin
j:=tjpegimage.create;
b:=tbitmap.create;
j.loadfromfile("e:\4.jpg");
b.assign(j);
b.pixelformat:=pf24bit;/// если это убрать, то
//в 256-цветном режиме в label1 будет 3, т.е. pf8bit -
image1.picture.assign(b);
label1.caption:=IntToStr(integer(b.pixelformat));
end;
← →
Ascan_ (2002-09-18 15:27) [4]MBo,
Работает... Почему-то я не удевлен.
Но зато, если бы все читали литературу, не было этого Форума! :-)
Спасибо.
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c