![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Библиотека Fastlib, изменеие размеров изобр.
alexdn © (2013-03-01 17:20:00)Если изменять размеры изображения из файла, то вообщем понятно:
Var Src,Dst:TFastDIB;
begin
Src.LoadFromFile('aaa.bmp');
Dst.SetSize(300, 200, Src.Bpp);
Bilinear(Src, Dst);
а вот если Src нужно связать с image1? loadfrom что писать?
alexdn (2013-03-02 12:55:00) [21]> clickmaker © (02.03.13 12:17) [15]
Dst.Draw(Image1.Picture.Bitmap.Canvas, 0, 0) Говорит несоответствие типов HDC и TCanvas.
clickmaker (2013-03-02 12:17:00) [22]Dst.Draw(Image1.Picture.Bitmap.Canvas, 0, 0)
alexdn (2013-03-02 09:14:00) [23]> brother © (02.03.13 08:34) [13]
Ну вот же, пока ничего не могу придумать, SavetoHandle не работает, нет такого слова.
brother (2013-03-02 08:34:00) [24]что тогда говоришь, что ничего не происходит???
alexdn (2013-03-02 08:12:00) [25]> brother © (02.03.13 08:08) [11]
> после преобразованиия НИЧЕГО НЕ ДЕЛАЕМ ДАЛЬШЕ и освобождаем
> СРАЗУ ресурсы...
Я думал сделать что то вроде Src.SavetoHandle, но пока ничего придумать не могу..
brother (2013-03-02 08:08:00) [26]> ничего на форме не происходит
и не произойдет, тк
> Src.LoadFromHandle(Image1.Picture.Bitmap.Handle);
только грузим
> Bilinear(Src, Dst); // или SmoothResize Bilinear
после преобразованиия НИЧЕГО НЕ ДЕЛАЕМ ДАЛЬШЕ и освобождаем СРАЗУ ресурсы...
alexdn (2013-03-02 07:36:00) [27]Пока остановился на таком, код прокручивает, но ровным счётом ничего на форме не происходит..
procedure TForm1.Button2Click(Sender: TObject);
Var Src,Dst:TFastDIB;
begin
//Src.LoadFromFile('aaa.bmp');
Src:=TFastDIB.Create;
Dst:=TFastDIB.Create;
Src.LoadFromHandle(Image1.Picture.Bitmap.Handle);
Dst.SetSize(300, 200, Src.Bpp);
Bilinear(Src, Dst); // или SmoothResize Bilinear
Src.Free;
Dst.Free;
Application.ProcessMessages;
end;
Sapersky (2013-03-01 19:50:00) [28]Ну не знаю, с битмапом у меня всё работает.
Посмотри в отладчике Width/Height картинки после LoadFromHandle, нормальные или нет.
Можно ещё брать картинку из Image так:
Var b : TBitmap;
b := Image1.Picture.Bitmap;
b.PixelFormat:=pf24Bit;
Src.SetInterface(b.ScanLine[b.Height-1], b.Width, b.Height, 24, 0, 0, 0);
Src.FreeBits:=False;
clickmaker (2013-03-01 19:50:00) [29]а TFastDIB.Create не надо делать?
AlexDn (2013-03-01 19:18:00) [30]Вот так сейчас, а выбивает уже внутри фастовских библиотек -
procedure TForm1.Button1Click(Sender: TObject);
begin
image1.Picture.LoadFromFile('vg.bmp');
end;
procedure TForm1.Button2Click(Sender: TObject);
Var Src,Dst:TFastDIB;
begin
//Src.LoadFromFile('aaa.bmp');
Src.LoadFromHandle(Image1.Picture.Bitmap.Handle);
Dst.SetSize(300, 200, Src.Bpp);
Bilinear(Src, Dst); //
end;
Sapersky (2013-03-01 18:46:00) [31]Не работает, когда в TImage jpeg или другая экзотика.
Я TImage мало использовал и не в курсе, как его нужно пнуть, чтобы он распаковал jpeg в Picture.Bitmap. По идее должен уметь, как-то он рисует картинку, а прямо из jpeg это невозможно.
Можно сделать наоборот - грузить в TFastDIB, отображать в TImage:
Image.Picture.Bitmap.Handle := Src.Handle;
Src.FreeHandle := False;
Image.Refresh;
clickmaker (2013-03-01 18:03:00) [32]> но не переваривает
дай ей мезим
alexdn (2013-03-01 17:55:00) [33]> clickmaker © (01.03.13 17:30) [3]
Вот так что ли? Src.LoadFromHandle(Image1.Picture.Bitmap.Handle); что то делфи вроде компилит, но не переваривает..
clickmaker (2013-03-01 17:30:00) [34]ну нельзя же настолько лениться... в хелп-то заглядывать надо иногда?
Image1.Picture.Bitmap.Handle
alexdn (2013-03-01 17:25:00) [35]> clickmaker © (01.03.13 17:23) [1]
> Handle?
Src.LoadFromHandle(image1); пишет
[DCC Error] Unit1.pas(39): E2010 Incompatible types: 'HBITMAP' and 'TImage'
clickmaker (2013-03-01 17:23:00) [36]> loadfrom что писать?
Handle?