Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 19.10.2008, 14:52   #1
RPGer
 
Аватар для RPGer
 
Регистрация: 15.07.2008
Сообщений: 6
Вопрос Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtDlgs, ExtCtrls, StdCtrls, jpeg;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    OpenPictureDialog1: TOpenPictureDialog;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  jpgfoto: TJPEGImage;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
  jpgfoto.LoadFromFile(OpenPictureDialog1.FileName);
  Image1.Height:=jpgfoto.Height;
  Image1.Width:=jpgfoto.Width;
  Image1.Left:=0;
  Image1.Top:=0;
  Image1.Canvas.Draw(0,0,jpgfoto);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
jpgfoto:= TJPEGImage.Create;
end;

end.
Непойму почему трабла. Компилю прогу, открываю картинку.

Все нормально, но когда я во 2 раз загрузаю картинку(другую), она становится криво.

Тоесть размер имэйджа изменяется на размер картинки, а сама она рисуется на области первой картинки. Объясните в чем косяк.

Да да да это я RPGer.

Последний раз редактировалось RPGer; 19.10.2008 в 14:55.
RPGer вне форума Ответить с цитированием
Старый 19.10.2008, 15:20   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Удивительно. Вы пишите
Код:
Image1.Canvas.Draw(0,0,jpgfoto);
а потом говорите "а сама она рисуется на области первой картинки"... слов нет
BOBAH13 вне форума Ответить с цитированием
Старый 19.10.2008, 18:42   #3
RPGer
 
Аватар для RPGer
 
Регистрация: 15.07.2008
Сообщений: 6
По умолчанию

А что разве код
Код:
Image1.Canvas.Draw(0,0,jpgfoto);
рисует не на всем имейдже?
Дело в том что отображается только та часть рисунка 2 которая входит в область 1-го. =(

Да да да это я RPGer.
RPGer вне форума Ответить с цитированием
Старый 19.10.2008, 19:42   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Так вы именно это и задали...
Почитайте про функцию Assign, она вам поможет.
mihali4 вне форума Ответить с цитированием
Старый 19.10.2008, 20:03   #5
RPGer
 
Аватар для RPGer
 
Регистрация: 15.07.2008
Сообщений: 6
По умолчанию

Тоесть чтоб картинка на канве рисовалась корректно мне нужно использовать Image1.Canvas.Assign(jpgfoto)??

Да да да это я RPGer.

Последний раз редактировалось RPGer; 19.10.2008 в 20:05.
RPGer вне форума Ответить с цитированием
Старый 19.10.2008, 20:04   #6
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Image1.Picture.Assign(jpgfoto);
Или так напиши
Image1.Picture.Bitmap.Height :=jpgfoto.Height;
Image1.Picture.Bitmap.Width := jpgfoto.Width;

Последний раз редактировалось lexaltd; 19.10.2008 в 20:11.
lexaltd вне форума Ответить с цитированием
Старый 20.10.2008, 18:54   #7
RPGer
 
Аватар для RPGer
 
Регистрация: 15.07.2008
Сообщений: 6
По умолчанию

Код:
Image1.Picture.Bitmap.Height :=jpgfoto.Height;
Image1.Picture.Bitmap.Width := jpgfoto.Width;
=) Спасибо именно это мне и надо было. Теперь все как задумывалось. Ошибка моя в том что я думал, что размеры битмапа в рисунке равны размерам рисунка =) оказывается нет))). Большое спасибо за ответы и за внимание.

Да да да это я RPGer.
RPGer вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме от 7000 рублей в месяц



Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размер файла eoln Общие вопросы Delphi 2 13.07.2008 00:44
Размер компонентов Witaliy Общие вопросы Delphi 0 06.06.2008 15:28
очистка image от картинки Victor[famas] Общие вопросы Delphi 9 13.02.2008 00:26
Размер поля БД kayman Общие вопросы Delphi 1 14.10.2007 20:43


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS