ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

2 procedure
  #1421  
Старый 20.08.2008, 14:43
ronald
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме:
800727

Репутация: 83
Отправить сообщение для ronald с помощью ICQ
Lightbulb 2 procedure

Советую Dev cpp http://www.bloodshed.net/download.html
(за помощь плюсы,плюсы,плюсы...)
 
Ответить с цитированием

  #1422  
Старый 22.08.2008, 10:39
BEGINER
Новичок
Регистрация: 16.08.2008
Сообщений: 19
Провел на форуме:
33376

Репутация: 3
По умолчанию

Доброго времени суток.
Подскажите пожалуйста как сделать скриншот экрана(игры) и записать его в JPG.
Стандартный PrintScreen делает это некорректно. Получаю образ экрана, могу его записать в BMP, но получаю слишком большой размер файла.
 
Ответить с цитированием

  #1423  
Старый 22.08.2008, 11:05
0x22b
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме:
1208190

Репутация: 136
Отправить сообщение для 0x22b с помощью ICQ
По умолчанию

SnagIT
 
Ответить с цитированием

  #1424  
Старый 24.08.2008, 18:22
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

Цитата:
Сообщение от BEGINER  
Доброго времени суток.
Подскажите пожалуйста как сделать скриншот экрана(игры) и записать его в JPG.
Стандартный PrintScreen делает это некорректно. Получаю образ экрана, могу его записать в BMP, но получаю слишком большой размер файла.
1. ошибся разделом
2. mspaint -> ctrl+v -> save as (*.jpeg)
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #1425  
Старый 24.08.2008, 19:51
BEGINER
Новичок
Регистрация: 16.08.2008
Сообщений: 19
Провел на форуме:
33376

Репутация: 3
По умолчанию

Цитата:
Сообщение от W!z@rD  
1. ошибся разделом
2. mspaint -> ctrl+v -> save as (*.jpeg)
1 прога пишется на Си(блокируется поверхность и по пикселю записывается в файл)
2 mspaint не делает сглаживания, а Photoshop‘а нет
 
Ответить с цитированием

  #1426  
Старый 25.08.2008, 06:49
ForNeVeR
Участник форума
Регистрация: 01.05.2006
Сообщений: 216
Провел на форуме:
287212

Репутация: 62
По умолчанию

BEGINER, т.е. ты хочешь, чтобы твоя прога делала сглаживание? Прикрути бикубический алгоритм тогда.
 
Ответить с цитированием

  #1427  
Старый 25.08.2008, 16:18
BEGINER
Новичок
Регистрация: 16.08.2008
Сообщений: 19
Провел на форуме:
33376

Репутация: 3
По умолчанию

Цитата:
Сообщение от ForNeVeR  
BEGINER, т.е. ты хочешь, чтобы твоя прога делала сглаживание? Прикрути бикубический алгоритм тогда.
Да, но это не главное, мне нужно сохранить образ экрана в JPG файл. Сейчас скидываю экран размером 800х600 в файл, получаю 960Кб. Это много!
 
Ответить с цитированием

  #1428  
Старый 25.08.2008, 17:54
Smapt
Познающий
Регистрация: 29.01.2008
Сообщений: 82
Провел на форуме:
373690

Репутация: 88
Exclamation

BEGINER, вот код (проверял в VC++2008). Сохраняет в JPG + можно устанавливать степень сжатия.
Код:
#include "stdafx.h"
#include <windows.h>
#include <gdiplus.h>


#pragma  comment (lib, "gdiplus.lib")

using namespace Gdiplus;


int GetEncoderClsid(WCHAR *format, CLSID *pClsid)
{
	unsigned int num = 0,  size = 0;
	GetImageEncodersSize(&num, &size);
	if(size == 0) return -1;
	ImageCodecInfo *pImageCodecInfo = (ImageCodecInfo *)(malloc(size));
	if(pImageCodecInfo == NULL) return -1;
	GetImageEncoders(num, size, pImageCodecInfo);
	for(unsigned int j = 0; j < num; ++j){
		if(wcscmp(pImageCodecInfo[j].MimeType, format) == 0){
			*pClsid = pImageCodecInfo[j].Clsid;
			free(pImageCodecInfo);
			return j;
		}    
	}
	free(pImageCodecInfo);
	return -1;
}

int GetScreeny(LPWSTR lpszFilename, ULONG uQuality) // by Napalm
{
    ULONG_PTR gdiplusToken;
	GdiplusStartupInput gdiplusStartupInput;
	GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
	
	HDC hdcScreen  = CreateDC(L"DISPLAY", NULL, NULL, NULL);
	HDC hdcCapture = CreateCompatibleDC(hdcScreen);
	int nWidth     = GetDeviceCaps(hdcScreen, HORZRES),
	    nHeight    = GetDeviceCaps(hdcScreen, VERTRES),
	    nBPP       = GetDeviceCaps(hdcScreen, BITSPIXEL);
	
	LPBYTE lpCapture;
	BITMAPINFO bmiCapture = { {
		sizeof(BITMAPINFOHEADER), nWidth, -nHeight, 1, nBPP, BI_RGB, 0, 0, 0, 0, 0,
	} };
	HBITMAP hbmCapture = CreateDIBSection(hdcScreen, &bmiCapture,
		DIB_PAL_COLORS, (LPVOID *)&lpCapture, NULL, 0);
	if(!hbmCapture){
		DeleteDC(hdcCapture);
		DeleteDC(hdcScreen);
		GdiplusShutdown(gdiplusToken);
		return 1;
	}
	
	int nCapture = SaveDC(hdcCapture);
	SelectObject(hdcCapture, hbmCapture);
	BitBlt(hdcCapture, 0, 0, nWidth, nHeight, hdcScreen, 0, 0, SRCCOPY);
	RestoreDC(hdcCapture, nCapture);
	DeleteDC(hdcCapture);
	DeleteDC(hdcScreen);
	
	CLSID imageCLSID;
	Bitmap *pScreenShot = new Bitmap(hbmCapture, (HPALETTE)NULL);
	EncoderParameters encoderParams;
	encoderParams.Count = 1;
	encoderParams.Parameter[0].NumberOfValues = 1;
	encoderParams.Parameter[0].Guid  = EncoderQuality;
	encoderParams.Parameter[0].Type  = EncoderParameterValueTypeLong;
	encoderParams.Parameter[0].Value = &uQuality;
	GetEncoderClsid(L"image/jpeg", &imageCLSID);
	int result = (pScreenShot->Save(lpszFilename, &imageCLSID, &encoderParams) == Ok);
	delete pScreenShot;
	DeleteObject(hbmCapture);
	GdiplusShutdown(gdiplusToken);
	return result;
}


int main()
{
	return GetScreeny(L"screeny.jpg", 75); //75-степень сжатия скрина
}

Последний раз редактировалось Smapt; 25.08.2008 в 20:02..
 
Ответить с цитированием

  #1429  
Старый 25.08.2008, 20:10
BEGINER
Новичок
Регистрация: 16.08.2008
Сообщений: 19
Провел на форуме:
33376

Репутация: 3
По умолчанию

Smapt большое спасибо, то что нужно. Вставил в VC6, получил кучу ошибок, добавил SDK их стало меньше, остались такие:
Код:
f:\program files\microsoft sdks\windows\v6.1\include\winnt.h(3607) : warning C4035: 'ReadPMC' : no return value
f:\program files\microsoft sdks\windows\v6.1\include\winnt.h(3637) : warning C4035: 'ReadTimeStampCounter' : no return value
f:\program files\microsoft sdks\windows\v6.1\include\wingdi.h(4340) : warning C4068: unknown pragma
f:\program files\microsoft sdks\windows\v6.1\include\wingdi.h(4341) : warning C4068: unknown pragma
f:\program files\microsoft sdks\windows\v6.1\include\bcrypt.h(112) : error C2485: 'align' : unrecognized extended attribute
f:\program files\microsoft sdks\windows\v6.1\include\bcrypt.h(112) : error C2059: syntax error : '('
f:\program files\microsoft sdks\windows\v6.1\include\bcrypt.h(118) : error C2485: 'align' : unrecognized extended attribute
f:\program files\microsoft sdks\windows\v6.1\include\bcrypt.h(118) : error C2059: syntax error : '('
F:\project\gdirest\gdirest.cpp(44) : error C2664: 'CreateDCA' : cannot convert parameter 1 from 'unsigned short [8]' to 'const char *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.
gdirest.exe - 5 error(s), 4 warning(s)
Как можно их исправить?
 
Ответить с цитированием

  #1430  
Старый 25.08.2008, 20:23
Smapt
Познающий
Регистрация: 29.01.2008
Сообщений: 82
Провел на форуме:
373690

Репутация: 88
По умолчанию

Первые 4 варнинга и ошибки у тебя как раз в СДК который ты добавил, так-что разбирайся с ним. А вообще поставь Vc9, я думаю проблемы пропадут.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ