Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.12;
Скачать: CL | DM;

Вниз

Zoom в Image   Найти похожие ветки 

 
killer ©   (2004-06-21 13:58) [0]

Как сделать так чтобы при нажатии одной кнопки изображение увеличивалось в Image, а по нажатию другой уменьшалось?


 
Семен Сорокин ©   (2004-06-21 14:13) [1]

StretchBlt, StretchDIBits, Canvas.StretchDraw


 
killer ©   (2004-06-21 14:28) [2]

а что это StretchBlt и StretchDIBits? Попробовал Image.StretchBlt - нет такого... есть просто Stretch


 
killer ©   (2004-06-21 14:45) [3]

что это такое?


 
Семен Сорокин ©   (2004-06-21 15:07) [4]


> killer ©   (21.06.04 14:45) [3]
> что это такое?

ф-ции API для растягивания изображения.


 
Огромное Кулясище   (2004-06-21 15:35) [5]

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;


 
killer ©   (2004-06-24 15:13) [6]

это только с bmp файлами работает... я хотел переделать под все файлы... т.е. изменял Image.Picture.Width/Height но... пишет что этот параметр только для чтения... что делать??? Может компонент какой есть?


 
Огромное Кулясище   (2004-06-24 17:23) [7]

Вот рабочий пример:
http://www.hot.ee/mvpselite/ZoomEx.rar



Страницы: 1 вся ветка

Текущий архив: 2004.09.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.063 c
14-1093333816
blackman
2004-08-24 11:50
2004.09.12
Не знаю, что с сайтом. Кто видит напишите


14-1092922960
SMT
2004-08-19 17:42
2004.09.12
Четкие изображения экрана в Help-файле


14-1093095857
Nick Denry
2004-08-21 17:44
2004.09.12
Библиотека Qt


14-1092418248
y-soft
2004-08-13 21:30
2004.09.12
Всемирный день левши


1-1093845560
Л1
2004-08-30 09:59
2004.09.12
Создал файл помощи, при вызове выдает ошибку.