Форум: "Начинающим";
Текущий архив: 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