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

Вниз

Загрузка в динамический Image часть изображения из файла   Найти похожие ветки 

 
igorium ©   (2011-11-14 12:04) [0]

Всем привет.
Есть картинка JPEG-файл.

Требуется динамически создать Image и загрузить часть картинки из JPEG-файла.

Я вроде все правильно делаю, но ничего не получается :(
Привожу текст программы:

// создаю Image
imFoto := TImage.Create(Self);
imFoto.Parent := MyPerson[num].pnPanel;
imFoto.OnClick := Panel_FirstClick;
imFoto.OnMouseMove := im_PanelFirstMouseMove;
imFoto.Left := Im_First.Left;
imFoto.Top := Im_First.Top;
imFoto.Width := Im_First.Width;
imFoto.Height := Im_First.Height;
imFoto.Tag := num;
imFoto.Proportional := true;
imFoto.Stretch := true;

// загрузка JPEG-файла и его конвертация
  loadJPG := TJpegImage.Create;
  loadJPG.JPEGNeeded;
  loadJPG.LoadFromFile(copy(FileName, 1, length(FileName)-3) + "jpg");
  loadBMP := TBitmap.Create;
  loadBMP.Width := JPG_W*Count_persons;
  loadBMP.Height := JPG_H;
  loadBMP.Assign(loadJPG);
  loadJPG.Free;

  imFoto.Canvas.CopyRect(Rect(JPG_W*(i-1), 0, JPG_W*i, JPG_H),
                                    loadBMP.Canvas,
                                    Rect(0, 0, JPG_W, JPG_H));
  loadBMP.Free;


Собственно не понимаю в чем засада :(
Заранее благодарен за помощь.


 
KilkennyCat ©   (2011-11-14 12:12) [1]

может, файла нет? ты так уверенно грузишь его... хоть бы проверил наличие.
да и imFoto.Canvas выглядит странно. Тама внутри вроде что-то другое, TPicture вроде.


 
igorium ©   (2011-11-14 12:20) [2]

Файл точно есть.
Проверял - loadJPG - сохраняет файл отлично.


 
KilkennyCat ©   (2011-11-14 12:24) [3]


> Проверял - loadJPG - сохраняет файл отлично.

кто ж так проверяет?!
if FileExists(..


 
Dennis I. Komarov ©   (2011-11-14 12:31) [4]

TPicture.LoadFromFile?


 
igorium ©   (2011-11-16 08:18) [5]


> KilkennyCat ©   (14.11.11 12:24) [3]
>
> > Проверял - loadJPG - сохраняет файл отлично.
>
> кто ж так проверяет?!
> if FileExists(..


Мы не поняли друг друга.
Я для теста сохранял в файл loadBMP и loadJPG.
Все замечательно сохранялось.
А в imFoto не передается :(
Т.е. загвоздка в imFoto.Canvas.CopyRect...


 
KilkennyCat ©   (2011-11-16 09:18) [6]


>
> Мы не поняли друг друга.

неправда. я тебя понял, а ты меня - нет.

> loadJPG.JPEGNeeded;
>   loadJPG.LoadFromFile(copy(FileName, 1, length(FileName)-
> 3) + "jpg");
>   loadBMP := TBitmap.Create;

рано или поздно это закончится плохо. проверка файла отсутствует. пофиг, что там вообще имадж, джпег канвасы и т.д.

> А в imFoto не передается :(


[1], [4]


 
igorium ©   (2011-11-16 12:29) [7]

ОК.
Насчет проверки на наличие согласен.
Сделаю.

Но проблема-то остается :(
Нет такого свойства imFoto.Picture.CopyRect :(


 
KilkennyCat ©   (2011-11-16 12:51) [8]

imFoto.Picture.Bitmap.Canvas.CopyRect();


 
igorium ©   (2011-11-16 13:13) [9]


> KilkennyCat ©   (16.11.11 12:51) [8]
> imFoto.Picture.Bitmap.Canvas.CopyRect();


НЕ работает :(


 
Германн ©   (2011-11-16 13:27) [10]


> Нет такого свойства imFoto.Picture.CopyRect

Куда же оно делось?


 
igorium ©   (2011-11-16 13:51) [11]


> Германн ©   (16.11.11 13:27) [10]
> > Нет такого свойства imFoto.Picture.CopyRect
>
> Куда же оно делось?


А оно было?
Так и будем в угадайку играть?
Я открыл новый проект, кинул туда Image и написал
image1.Picture.CopyRect
Мой 7-ой Дельфи сказал, что таких свойств не знает.

Ну реально помощь нужна !!!


 
KilkennyCat ©   (2011-11-16 13:56) [12]

ну вообще-то странно.
во-первых, твой первый вариант тоже работает imFoto.Canvas.CopyRect(
что-то ты не так делаешь.

вот я накидал и проверил:
unit Unit7;

interface

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

type
 TForm7 = class(TForm)
   btn1: TButton;
   procedure btn1Click(Sender: TObject);
 private
   { Private declarations }
 public
   imfoto:TImage;
   { Public declarations }
 end;

var
 Form7: TForm7;

implementation

{$R *.dfm}

procedure TForm7.btn1Click(Sender: TObject);
var
 loadJPG : TJpegImage;
 loadBMP : TBitmap;
begin
 imFoto := TImage.Create(Self);
 imFoto.Parent := Form7;
 imFoto.Left := 0;
 imFoto.Top := 0;
 imFoto.Width := 64;
 imFoto.Height := 64;

 loadJPG := TJpegImage.Create;
 loadBMP := TBitmap.Create;

 loadJPG.JPEGNeeded;
 loadJPG.LoadFromFile("D:\KPK\1.jpg");
 loadBMP.Assign(loadJPG);
 loadJPG.Free;

 imFoto.Canvas.CopyRect(Rect(10, 10, 50, 50), loadBMP.Canvas, Rect(100, 100, 300, 300));

 loadBMP.Free;
end;

end.


 
MBo ©   (2011-11-16 15:46) [13]

>image1.Picture.CopyRect
>Мой 7-ой Дельфи сказал, что таких свойств не знает.

Будьте внимательнее. У Picture метода CopyRect, конечно, нет - это метод TCanvas


 
igorium ©   (2011-11-21 11:46) [14]


> KilkennyCat ©

Спасибо большое за помощь.
Разобрался.



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

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

Наверх





Память: 0.48 MB
Время: 0.004 c
15-1320352202
Юрий
2011-11-03 23:30
2012.02.26
С днем рождения ! 4 ноября 2011 пятница


2-1320945193
Кирил_Антонович
2011-11-10 21:13
2012.02.26
Небольшая сетевая БД


2-1321736746
bunguev
2011-11-20 01:05
2012.02.26
Вкладки в делфи(


2-1320229207
Fr
2011-11-02 13:20
2012.02.26
сокеты и браузер


15-1320848351
xss22
2011-11-09 18:19
2012.02.26
Удаление элемента со сдвигом из массива array of record





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский