Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> BltBlt, Как сфотографировать область? 
:(
    Опции темы
denmoroz
  Дата 3.2.2006, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 10.12.2005

Репутация: нет
Всего: нет



Как сфотографировать область Image1 и сохранить в файл smile

Это сообщение отредактировал(а) denmoroz - 3.2.2006, 19:13
PM MAIL   Вверх
Snowy
Дата 3.2.2006, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



А чем не подходит Image1.Bitmap.SaveToFile?
PM MAIL   Вверх
SoWa
Дата 3.2.2006, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: нет
Всего: 74



Т.е. надо облась картинки из Image?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
denmoroz
Дата 5.2.2006, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 10.12.2005

Репутация: нет
Всего: нет



SoWa у меня на Image1 лежит ещё много Label и ещё Image2.

PM MAIL   Вверх
denmoroz
Дата 5.2.2006, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 10.12.2005

Репутация: нет
Всего: нет



SoWa и всё это добро надо сфоткать и сохранить в файл...
PM MAIL   Вверх
s-mike
Дата 5.2.2006, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Цитата(denmoroz @ 5.2.2006, 15:06)
SoWa и всё это добро надо сфоткать и сохранить в файл...

Image.Parent.PaintTo + немного поизвращаться с координатами и будет работать smile
PM MAIL WWW   Вверх
denmoroz
Дата 7.2.2006, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 10.12.2005

Репутация: нет
Всего: нет



s-mike это например как? smile
Добавлено @ 16:18
s-mike а всётаки как с помощью BLTBLT?
PM MAIL   Вверх
s-mike
Дата 8.2.2006, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Ну что-то в этом роде (экспромт ;) ):
Код

var
  Bitmap: TBitmap;
begin
  Bitmap := TBitmap.Create;
  Bitmap.Width := Image.Width;
  Bitmap.Height := Image.Height;
  Image.Parent.PaintTo(Bitmap.Canvas.Handle, -Image.Left, -Image.Top);
...

Цитата
а всётаки как с помощью BLTBLT?

Сложнее, нужно все компоненты по очереди отрисовывать.
PM MAIL WWW   Вверх
darkart
Дата 8.2.2006, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 9.11.2005

Репутация: нет
Всего: 31



Если правильно понял вопрос, то плыви от примера(для BorderStyle=bsNone, иначе потребуются доп вычисления на рамку окна):
Код

unit main;

interface

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

type
  TfrmMain = class(TForm)
    img1: TImage;
    img2: TImage;
    lblSample: TLabel;
    btnTest: TButton;
    btnExit: TButton;
    procedure btnTestClick(Sender: TObject);
    procedure btnExitClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.btnTestClick(Sender: TObject);
var
  bmp:TBitmap;
begin
  bmp:=TBitmap.Create;{создание Bitmapa}
  bmp.Width:=img1.Width;
  bmp.Height:=img1.Height;
  BitBlt(bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height,GetDC(0),Left+img1.Left+Width-ClientWidth,Top+Img1.Top+Height-ClientHeight,SRCCOPY);{собственно блиттинг}
  bmp.SaveToFile('test.bmp');{сохраняем в файл}
  bmp.Free;{уничтожение}
end;

procedure TfrmMain.btnExitClick(Sender: TObject);
begin
  Close;
end;

end.


Это сообщение отредактировал(а) darkart - 8.2.2006, 02:04

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  BitBltSample.zip 11,05 Kb
PM MAIL WWW ICQ Skype GTalk   Вверх
s-mike
Дата 8.2.2006, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Цитата
BitBlt(bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height,GetDC(0),Left+img1.Left+Width-ClientWidth,Top+Img1.Top+Height-ClientHeight,SRCCOPY);

darkart, а если какое-то окно будет закрывать Image? ;)
PM MAIL WWW   Вверх
darkart
Дата 8.2.2006, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 9.11.2005

Репутация: нет
Всего: 31



Я же написал - это только пример.
Можно подправить, но эффект все равно останется:
Код

  BitBlt(bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height,Canvas.Handle,img1.Left,Img1.Top,SRCCOPY);

А где написано про перекрытие другим окном smile ?

Это сообщение отредактировал(а) darkart - 8.2.2006, 07:50
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0522 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.