Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2010, 23:25   #1
wlords
 
Регистрация: 26.11.2008
Сообщений: 3
По умолчанию загрузка изображения

Доброе время суток!
Реализовал в программе чтение с экрана - нажимается PrintScreen, вставляется в файл BMP через Paint, сохраняется, загружается в программу...
можно как-то это сделать проще или быстрее?
Заранее спасибо
wlords вне форума Ответить с цитированием
Старый 23.11.2010, 23:29   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

В книге Михаила Фленова Библия Delphi (кажется), был пример. Как загнать скрин экрана в TImage.
psycho-coder вне форума Ответить с цитированием
Старый 24.11.2010, 00:05   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Как сделать BMP снимок с экрана?
Код:
Грузин: 

var
  Desktopcanvas :TCanvas ;
 BitMap  :TBitMap;
begin
  DesktopCanvas:=TCanvas.Create;
  DesktopCanvas.Handle:=GetDC(Hwnd_Desktop);
  BitMap := TBitMap.Create;
  BitMap.Width := Screen.Width;
  BitMap.Height:=Screen.Height;
  Bitmap.Canvas.CopyRect(Bitmap.Canvas.ClipRect,
  DesktopCanvas, DesktopCanvas.ClipRect);
  bitmap.SaveToFile('c:\windows\screen.bmp');
 image1.Picture.LoadFromFile('c:\windows\screen.bmp');
end;

*****************************************************
Alar:

var 
ScreenDC:HDC; 
Canvas:TCanvas; 
Image1:TImage; 
begin 
ScreenDC := GetDC(0); 
Canvas:=TCanvas.Create(); 
Canvas.Handle:=ScreenDC; 
Image1 := TImage.Create(nil); 
Image1.Width := Screen.Width; 
Image1.Height := Screen.Height; 
Image1.Canvas.CopyRect(Rect(0, 0, Image1.Width, Image1.Height), Canvas, Rect(0, 0, Screen.Width, Screen.Height)); 
ReleaseDC(0,ScreenDC); 
Canvas.Free; 
end;
******************************************************
maxionans:

var
  DC : HDC;
  Bmp : TBitmap;
begin
  Bmp := TBitmap.Create;
  try
    DC := GetDC( 0 );
    Bmp.SetSize( 100, 100 );
    BitBlt( Bmp.Canvas.Handle, 0, 0, 100, 100, DC, 0, 0, SRCCOPY );
    Bmp.SaveToFile( 'c:\test.bmp' );
    ReleaseDC( 0, DC );
  finally
    Bmp.Free;
  end;
end;
Как сделать JPG снимок с экрана?
Код:
var
ScreenDC:HDC;
Canvas:TCanvas;
myjpg:  TJPEGImage;
Image: TImage;
Begin
Image:=TImage.Create(nil);
myjpg:= TJPEGImage.Create;
ScreenDC := GetDC(0); 
Canvas:=TCanvas.Create();
Canvas.Handle:=ScreenDC;
Image.Width := Screen.Width;
Image.Height := Screen.Height;
Image.Canvas.CopyRect(Rect(0, 0, Image.Width, Image.Height), Canvas, Rect(0, 0, Screen.Width, Screen.Height));
ReleaseDC(0,ScreenDC);
myjpg.Assign(Image.Picture.Bitmap);
myjpg.compressionquality:=75; {устанавливаем параметры качества. Должно быть от 1 до 100. Если 100, то качество наилучшее, 1 наихудшее}
myjpg.compress; {производим сжатие данных картинки}
myjpg.SaveToFile('c:\prob.jpg');
Image.Free;
Canvas.Free; 
end;
mihali4 вне форума Ответить с цитированием
Старый 24.11.2010, 20:52   #4
wlords
 
Регистрация: 26.11.2008
Сообщений: 3
По умолчанию

Цитата:
Canvas.Handle:=ScreenDC;
Image.Width := Screen.Width;
Image.Height := Screen.Height;
Image.Canvas.CopyRect(Rect(0, 0, Image.Width, Image.Height), Canvas, Rect(0, 0, Screen.Width, Screen.Height));
что делает этот кусок кода???
и как сохранить картинку не в файл, а в переменную типа Canvas?
wlords вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
загрузка растрового изображения Serg16361898 Помощь студентам 0 01.06.2010 20:15
Загрузка изображения _-Re@l-_ Общие вопросы Delphi 7 31.05.2010 14:54
Загрузка изображения из потока Joe_Tribbiani Общие вопросы Delphi 1 22.04.2009 03:07
Загрузка изображения JRcoker Мультимедиа в Delphi 15 04.11.2008 18:32
Загрузка изображения с http Рустам Работа с сетью в Delphi 1 04.02.2008 18:28