Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
ВнизКак получить Найти похожие ветки
← →
DenisWW (2004-01-19 13:02) [0]я делаю так
устанавливаю размер Image1 и ImageList1 размером 100 х 100
гружу рисунок
Image1.Picture.Bitmap.LoadFromFile(".........");
Image1.Stretch:=True;
как мне теперь этот замечательный промасштабированный рисунок получить в виде TBitMap; , чтобы занести в ImageList1????
← →
hfa (2004-01-19 13:11) [1]
ImageList1.Add(Image1.Picture.Bitmap,nil);
← →
DenisWW (2004-01-19 13:14) [2]так не катит
результат - оргинальное непромасштабированное изобржение
← →
hfa (2004-01-19 13:14) [3]доля чего ты заносишь его в imagelist?
← →
DenisWW (2004-01-19 13:20) [4]я изображения в отдельном потоке получаю
а в основном их вывожу
поэтому для меня лучше прнивиев держать в imagelist
← →
DenisWW (2004-01-19 13:23) [5]далее я с Imagelist в другом месте рисовать буду а потом всё заново
← →
Ega23 (2004-01-19 13:26) [6]Сначала создаёшь виртуальный битмап, ставишь ему Width=100, Height=100, Потом через StretchDraw на него копируешь оригинальное изображение. Потом Этот виртуальный добавляешь в ImageList.
← →
hfa (2004-01-19 13:29) [7]попробуй процедуру Canvas.StretchDraw(Rect:TRect,TGraphic)
← →
easy (2004-01-19 13:45) [8]
var
b:TBitmap;
begin
Image1.Picture.Bitmap.LoadFromFile(".....");
b:=TBitmap.Create;
b.Width:=100;
b.Height:=100;
b.Canvas.StretchDraw(rect(0,0,100,100),image1.Picture.Graphic);
ImageList1.Add(b,nil);
b.Free;
ImageList1.GetBitmap(0,Image2.Picture.Bitmap);
end;
← →
DenisWW (2004-01-19 14:22) [9]easy © спасибо!
← →
DenisWW (2004-01-19 16:31) [10]bm:=TBitMap.Create;
bm.Width:=ImageList2.Width;
bm.Height:=ImageList2.Height;
Imag:=TImage.Create(Nil);
Imag.Width:=ImageList2.Width;
Imag.Height:=ImageList2.Height;
Imag.Picture.Bitmap.LoadFromFile(Find.Name);
bm.Canvas.StretchDraw(rect(0,0,bm.Width,bm.Height),Imag.Picture.Graphic);
ImageList2.Add(bm,nil);
сделал так и не всегда, но редко, в ImageList2 попадает просто чёрный квадрат - почему?
← →
_none_ (2004-01-19 16:46) [11]uses GDIPAPI, GDIPOBJ;
....
procedure TForm1.LoadPic(__FName: string; __Image: TImage);
var _Graphics: TGPGraphics;
_Bitmap: TGPBitmap;
begin
if FileExists(__FName) then
begin
_Bitmap := TGPBitmap.Create(__FName);
__Image.Picture.Bitmap.Width := _Bitmap.GetWidth;
__Image.Picture.Bitmap.Height := _Bitmap.GetHeight;
_Graphics := TGPGraphics.Create(__Image.Picture.Bitmap.Canvas.Handle);
_Graphics.SetInterpolationMode(InterpolationModeHighQualityBicubic);
_Graphics.DrawImage(_Bitmap, 0, 0, _Bitmap.GetWidth, _Bitmap.GetHeight);
_Graphics.Free;
_Bitmap.Free;
end
else
__Image.Picture := nil;
end;
← →
DenisWW (2004-01-19 16:58) [12]хотя Imag я могу смотреть и грузится он всегда ок
а по поводу _none_ спасибо - я чуть позже гляну
помойму чуть не то
← →
DenisWW (2004-01-21 15:04) [13]ImageList2 я формирую в отельном потоке
bm:=TBitMap.Create;
bm.Width:=ImageList2.Width;
bm.Height:=ImageList2.Height;
Imag:=TImage.Create(Nil);
Imag.Width:=ImageList2.Width;
Imag.Height:=ImageList2.Height;
Imag.Picture.Bitmap.LoadFromFile(Name);
bm.Canvas.StretchDraw(rect(0,0,bm.Width,bm.Height),Imag.Picture.Graphic);
ImageList2.Add(bm,nil);
а DrawGrid через DrawGrid1Draw1Cell
отрисовывает ImageList2 у себя в клетках
with Sender as TDrawGrid do begin
Canvas.FillRect(Rect);
ImageList2.Draw(Canvas,Rect.Left,Rect.Top,ARow);
End;
не всегда, но редко, DrawGrid иногда отрисовывает просто чёрные квадраты - почему? Кажется такое изображение попадает именно в ImageList2
Imag я могу смотреть и грузится он всегда ок
← →
DenisWW (2004-01-21 15:32) [14]могу текст прислать кому надо
← →
DenisWW (2004-01-21 15:37) [15]злые - эти програмеры
у меня скоро чакра засохнет и отвалится ждать
← →
DenisWW (2004-01-22 13:26) [16]Вопрос под номером 13 обсуждается
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.022 c