Форум: "Media";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
ВнизКак сузить битмап? Найти похожие ветки
← →
maxistent (2004-07-01 18:45) [0]Привет всем Мастерам и не только!
Ситуация: загружен битмап в TImage.
Вопрос: как сделать так, чтобы он (битмап) сузился, например,
справа (слева, сверху, снизу) на нужное кол-во пикселей?
|\
| \
| |
| |
| |
| /
|/
Если есть инфа по этому поводу, может скинете на MAXISTENT@MAIL.RU?
А то у меня нет возможности сидеть долго в Инете.
!!! Заранее огромное спасибо !!!
← →
Ega23 © (2004-07-01 18:48) [1]Что значит "сузился"? StretchDraw?
← →
maxistent (2004-07-01 19:23) [2]Чтобы с одного конца(например, с правого) он стал меньше
← →
Ega23 © (2004-07-01 19:34) [3]TBitmap.Canvas.StretchDraw рой в этом направлении...
← →
Рыба © (2004-07-01 23:23) [4]Да, есть какая-то формула...
← →
Огромное Кулясищще © (2004-07-02 00:12) [5]Да, это, знаете, проективное преобразование, весьма сложное. Оно реализовано в Graphic32 (http://www.g32.org). StretchDraw тут не помошник и даже не направитель.
← →
Глеб © (2004-07-02 02:32) [6]Bitmap.Width? ИМХО
← →
MBo © (2004-07-02 06:08) [7]
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;
← →
buka (2004-07-02 10:17) [8]В школе учился? Скажи честно.
← →
maxistent (2004-07-02 10:35) [9]в школе такой фигнёй не страдают, а мне надо!
← →
WondeRu © (2004-07-02 13:30) [10]я бы с извратом сделал: наложил бы текстуру в ОпенЖЛ на трапецию!)))
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c