Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сузить битмап? [D3, D5, D7, WinXP]


maxistent ©   (2004-07-01 18:45:00) 

Привет всем Мастерам и не только!
Ситуация: загружен битмап в TImage.
Вопрос: как сделать так, чтобы он (битмап) сузился, например,
справа (слева, сверху, снизу) на нужное кол-во пикселей?
|\
| \
|  |
|  |
|  |
| /
|/
Если есть инфа по этому поводу, может скинете на MAXISTENT@MAIL.RU?
А то у меня нет возможности сидеть долго в Инете.
!!! Заранее огромное спасибо !!!


WondeRu   (2004-07-02 13:30:00) [1]

я бы с извратом сделал: наложил бы текстуру в ОпенЖЛ на трапецию!)))


maxistent   (2004-07-02 10:35:00) [2]

в школе такой фигнёй не страдают, а мне надо!


buka   (2004-07-02 10:17:00) [3]

В школе учился? Скажи честно.


MBo   (2004-07-02 06:08:00) [4]


procedure TForm1.Button1Click(Sender: TObject);
var
 a, b: TBitmap;
 x, y, yy, cy, w: Integer;
begin
 a := TBitmap.Create;
 b := TBitmap.Create;
 a.LoadFromFile('pic.bmp');
 b.Assign(a);
 b.Canvas.FillRect(Rect(0, 0, b.Width, b.Height));
 w := a.Width;
 cy := a.Height div 2;
 for x := 0 to a.Width - 1 do
   for y := 0 to a.Height - 1 do begin
     yy := cy + (y - cy) * (w - x div 2) div w;
     b.Canvas.Pixels[x, yy] := a.Canvas.Pixels[x, y];
   end;
 Canvas.Draw(0, 0, b);
 b.Free;
 a.Free;
end;


Глеб   (2004-07-02 02:32:00) [5]

Bitmap.Width? ИМХО


Огромное Кулясищще   (2004-07-02 00:12:00) [6]

Да, это, знаете, проективное преобразование, весьма сложное. Оно реализовано в Graphic32 ( http://www.g32.org). StretchDraw тут не помошник и даже не направитель.


Рыба   (2004-07-01 23:23:00) [7]

Да, есть какая-то формула...


Ega23   (2004-07-01 19:34:00) [8]

TBitmap.Canvas.StretchDraw  рой в этом направлении...


maxistent   (2004-07-01 19:23:00) [9]

Чтобы с одного конца(например, с правого) он стал меньше


Ega23   (2004-07-01 18:48:00) [10]

Что значит "сузился"? StretchDraw?


Наверх

Титульная страница Поиск, карта сайта Написать письмо