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

Вниз

Как быстрее всего получить screenshort экрана.   Найти похожие ветки 

 
Magical   (2003-10-10 22:21) [0]

Как быстрее всего получить screenshort экрана.
А также как преобразовать картинку в 256 оттенков серого.
И как изменять степень сжатия-качества при приобразовании картинки в jpg.
Буду очень благодарен за любую помощь.


 
Zacho   (2003-10-10 22:25) [1]

Нажать Print Scrn. Я серьезно.


 
Magical   (2003-10-10 22:28) [2]

Я тоже серьезно. Спасибо конечно, но я имел ввиду программно, но естественно не нужно мне предлагать нажимать PrintScreen програмно.


 
Zacho   (2003-10-10 22:37) [3]

RTFM MS SDK. Например, GetDC и т.д и т.п. ...
А быстрее всего - именно так.


 
xorax   (2003-10-10 23:28) [4]

а если совсем лень юзай компоненты, ищи на торри


 
mike.dld   (2003-10-11 04:07) [5]


t_dc := GetDC(0);
BitBlt(dest_dc,0,0,screen.Width,screen.Height,t_dc,0,0,SRCCOPY);
ReleaseDC(t_dc);


Вот, и dest_dc - хэндл (почти) рисунка. Всякие там SelectObject на контекст битмапа я, естественно, не пишу.

Есть другой способ, попроще - создаёшь канву и вместо dest_dc пишешь <имя_канвы>.Handle. Должно работать.


 
Fenik   (2003-10-11 08:54) [6]

>А также как преобразовать картинку в 256 оттенков серого.

procedure GrayBmp(Bitmap: TBitmap);

function BLimit(A: Integer): Byte;
begin
if A < 0 then Result := 0
else if A > 255 then Result := 255
else Result := A;
end;

var n: Byte;
x, y: Integer;
Dest: pRGBTriple;

begin
Bitmap.PixelFormat := pf24Bit;
for y := 0 to Bitmap.Height - 1 do begin
Dest := Bitmap.ScanLine[y];
for x := 0 to Bitmap.Width - 1 do begin
with Dest^ do begin
n := BLimit(Round((rgbtBlue + rgbtGreen + rgbtRed)/3));
rgbtBlue := n;
rgbtGreen := n;
rgbtRed := n;
end;
Inc(Dest);
end;
end;
end;


>И как изменять степень сжатия-качества при приобразовании картинки в jpg.

TJPEGImage.Quolity - по-моему так пишется.


 
Amorph Lexx   (2003-10-11 12:37) [7]

2 Fenik
Только когда в отенки серого преобразуешь, компоненты RGB не с равными весами при усреднении идут, а с различными, каким, точно не помню, но это легко найти.


 
Magical   (2003-10-11 14:08) [8]

Большое спасибо. Вы мне очень помогли.


 
Anatoly Podgoretsky   (2003-10-11 14:37) [9]

I = 0.299R+0.587G+0.114B


 
AndHX   (2003-10-12 17:26) [10]


Procedure GetScreenShort(Var Bitmap: TBitMap);
Var
C : TCanvas;
R : TRect;
H : THandle;
begin
H := GetDC(0);
C := TCanvas.create;
C.Handle := H;
R := C.FlipRect;
Bitmap.CopyRect(R, C, R);
C.Free;
end;



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

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

Наверх




Память: 0.46 MB
Время: 0.011 c
14-74372
kaif
2003-10-06 15:49
2003.10.23
Маленькое наблюдение на тему зонтиков


1-74292
Chuha
2003-10-12 21:24
2003.10.23
listbox


14-74453
Knight
2003-10-03 16:54
2003.10.23
Кто-нибудь один... не надо много


1-74254
Stas
2003-10-13 11:10
2003.10.23
Графические координаты в TMemo


1-74303
Meronikol
2003-10-12 14:15
2003.10.23
Как скопировать каталог с его файлами и подкаталогами?





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