Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Media";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.031 c
1-1093422135
Borion
2004-08-25 12:22
2004.09.12
Программная смена размера бумаги


1-1093410600
wild_arg
2004-08-25 09:10
2004.09.12
сравнение по скорости


3-1092680067
_Dragon
2004-08-16 22:14
2004.09.12
Обновление записей


1-1093113718
Арр'акктур
2004-08-21 22:41
2004.09.12
гибрид TTreeView с TListView


9-1084727256
G_U_N
2004-05-16 21:07
2004.09.12
Полупрозрачный рисунок





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский