![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Zoom в Image [D7, Win95/98, WinXP]
killer © (2004-06-21 13:58:00)Как сделать так чтобы при нажатии одной кнопки изображение увеличивалось в Image, а по нажатию другой уменьшалось?
Огромное Кулясище (2004-06-24 17:23:00) [1]Вот рабочий пример:
http://www.hot.ee/mvpselite/ZoomEx.rar
killer (2004-06-24 15:13:00) [2]это только с bmp файлами работает... я хотел переделать под все файлы... т.е. изменял Image.Picture.Width/Height но... пишет что этот параметр только для чтения... что делать??? Может компонент какой есть?
Огромное Кулясище (2004-06-21 15:35:00) [3]unit mainUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtDlgs, StdCtrls, Spin, ExtCtrls;
type
TmainForm = class(TForm)
Image: TImage;
panelTools: TPanel;
btnOpenPic: TButton;
SpinZoom: TSpinEdit;
Label1: TLabel;
OpenPictureDialog: TOpenPictureDialog;
procedure btnOpenPicClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure SpinZoomChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
mainForm: TmainForm;
var
Pic: TPicture;
implementation
{$R *.DFM}
procedure TmainForm.btnOpenPicClick(Sender: TObject);
begin
If OpenPictureDialog.Execute then
begin
If Pic <> nil then Pic.Free;
Pic := TPicture.Create;
Pic.LoadFromFile(OpenPictureDialog.FileName);
Image.Width := Pic.Bitmap.Width;
Image.Height := Pic.Bitmap.Height;
Image.Picture.Bitmap.Width := Pic.Bitmap.Width;
Image.Picture.Bitmap.Height := Pic.Bitmap.Height;
Image.Canvas.StretchDraw(Rect(0, 0, Pic.Bitmap.Width, Pic.Bitmap.Height),
Pic.Bitmap);
end;
end;
procedure TmainForm.FormDestroy(Sender: TObject);
begin
If Pic <> nil then Pic.Free;
end;
procedure TmainForm.SpinZoomChange(Sender: TObject);
var WNew, HNew: Integer;
begin
If Pic <> nil then
begin
WNew := Pic.Bitmap.Width * SpinZoom.Value;
HNew := Pic.Bitmap.Height * SpinZoom.Value;
Image.Width := WNew;
Image.Height := HNew;
Image.Picture.Bitmap.Width := WNew;
Image.Picture.Bitmap.Height := HNew;
Image.Picture.Bitmap.Canvas.StretchDraw(Rect(0, 0, WNew, HNew),
Pic.Bitmap);
end;
end;
Семен Сорокин (2004-06-21 15:07:00) [4]
> killer © (21.06.04 14:45) [3]
> что это такое?
ф-ции API для растягивания изображения.
killer (2004-06-21 14:45:00) [5]что это такое?
killer (2004-06-21 14:28:00) [6]а что это StretchBlt и StretchDIBits? Попробовал Image.StretchBlt - нет такого... есть просто Stretch
Семен Сорокин (2004-06-21 14:13:00) [7]StretchBlt, StretchDIBits, Canvas.StretchDraw