Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Народ как на WinAPI сделать скриншот желательно в jpeg? [D6, Win2k]


SVM ©   (2002-09-29 08:05:00) 

Помогите, может есть в WinApi функции конвертирования Bitmap -> JPEG. Если есть подскажите, если нет может кто-то писал ее...
Заранее всем спасибо


Evgeny   (2002-10-12 07:38:00) [1]

Если хочешь сохранять в JPEG, то действительно маленький размер получить невозможно, а вот с GIF`ом можно сделать очень даже компактно
afro@sibovk.omskcity.com
subj: Bitmap -> GIF
иначе уйдет в помойку.


bytebutcher   (2002-10-12 03:26:00) [2]

В WinAPI НЕТУ функций конвертации или записи в JPEG!!!!!!!!!!!


Pumpkin   (2002-10-10 13:16:00) [3]

Маленький не получится. Любой код сжимающий в JPEG займет не намного меньше чем при uses Jpeg;


relict   (2002-10-10 13:07:00) [4]

это тебе батенька тогда С++ нужен


SVM   (2002-10-10 11:39:00) [5]

Дык я говорю размер исполняего файла должен быть маленьким


Rouse_   (2002-10-10 00:21:00) [6]

Дык ЁПРСТ чем тебя код то не устраивает скажи? Все правильно дали

Желаю успехов


SVM   (2002-10-10 00:15:00) [7]

Вопрос остается в силе...


SVM   (2002-10-09 12:14:00) [8]

Вопрос остается в силе...


Rouse_   (2002-10-09 00:28:00) [9]

> (я так думаю, что это проще чем в JPEG
Проще чем JPEG.Assign(Bitmap)? Ну-ну.
Я так понимаю ты хочешь чтоб программа была маленькой, раз маленькой значит опять какаято пакость опять пишется (или я не прав?). Чем тебе этот то пример не подходит обьясни?

Кстати присулайся к совету > k (07.10.02 15:28)

Желаю успехов


SVM   (2002-10-09 00:12:00) [10]

Смотрел я этот FastLIB, дык там нужна dll-ка...
Народ ну помогите!!! Может у кого-нить есть исходники конвертирования BITMAP в GIF (я так думаю, что это проще чем в JPEG).


k   (2002-10-07 15:28:00) [11]

ходят слухи, что чистый WinAPI понятия не имеет про jpeg или gif

Можно сделать как FastLIB c intel jpeg library
или через OLE исп. к.н. софт, например эксплорер.
либо почитать док и написать самому.

если я заблуждаюсь, поправьте меня


SVM   (2002-10-07 14:59:00) [12]

Я же говорил, что на чистом API, можно в GIF


Rouse_   (2002-10-05 17:23:00) [13]

Немного подправлю пример

procedure TForm1.Button1Click(Sender: TObject);
var
DC: HDC;
Canva: TCanvas;
B: TBitmap;
JPEG: TJPEGImage;
Bitmap: TBitmap;
begin
Canva := TCanvas.Create;
B := TBitmap.Create;
DC := GetDC(0);
try
Canva.Handle := DC;
with Screen do
begin
B.Width := Width;
B.Height := Height;
B.Canvas.CopyRect(Rect(0, 0, Width, Height), Canva,Rect(0, 0, Width, Height));
JPEG.Assign(B);
JPEG.
SaveToFile("C:\Documents and Settings\Alexander.PENTIUM-200-MMX\Desktop\1.jpg");
end
finally
ReleaseDC(0, DC);
B.Free;
Canva.Free;
JPEG.Free;
end;


Так оно правильней будет

Желаю успехов


SVM   (2002-10-04 22:20:00) [14]

Мне надо скриншот сделать программно на чистом WinAPI, можно в JPEG, можно в GIF.


sancho   (2002-10-04 21:54:00) [15]

Руками

printscreen - копироние содержимого экрана в клипборд
alt + printscreen - копирование активного окна


Ну а потом тащи в рисовалку!!!!


k   (2002-10-03 12:32:00) [16]

скачай FastLIB библиотеку (ссылка есть на DelphiGFX). она использует intel jpeg library на чистом WinApi


Александр Подбрезский   (2002-10-03 12:20:00) [17]

unit Unit1;

interface

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

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

var
Form1: TForm1;


implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
DC: HDC;
Canva: TCanvas;
B: TBitmap;
JPEG: TJPEGImage;
Bitmap: TBitmap;
begin
Canva := TCanvas.Create;
B := TBitmap.Create;
DC := GetDC(0);
try
Canva.Handle := DC;
with Screen do
begin
B.Width := Width;
B.Height := Height;
B.Canvas.CopyRect(Rect(0, 0, Width, Height), Canva,Rect(0, 0, Width, Height));
B.SaveToFile("C:\Documents and Settings\Alexander.PENTIUM-200-MMX\Desktop\1.jpg");
end
finally
ReleaseDC(0, DC);
B.Free;
Canva.Free;
end;

JPEG := TJPEGImage.Create;
Bitmap := TBitmap.Create;
try
Bitmap.LoadFromFile("C:\Documents and Settings\Alexander.PENTIUM-200-MMX\Desktop\1.jpg");;
JPEG.Assign(Bitmap);
Image1.Picture.Assign(JPEG);
image1.Picture.SaveToFile("C:\Documents and Settings\Alexander.PENTIUM-200-MMX\Desktop\1.jpg");;
finally
JPEG.Free;
Bitmap.Free;
end;
end;



end.
У меня работает. Делает скриншот с десктопа и в jpeg загоняет


Manulo   (2002-09-29 16:44:00) [18]

Ich Hasse: А ты давно то по хатке прохаживался?


KaPaT   (2002-09-29 12:59:00) [19]

В FAQ поискать не дано, нет?


Ich Hasse   (2002-09-29 12:25:00) [20]

посмотри на www.xatka.vov.ru там в приколах находится такой как переворачивание экрана, почитай, он как раз считывает с экрана содержимое и переворачивает его...


Наверх

Титульная страница Поиск, карта сайта Написать письмо