Pregunta: | 43092 - ALMACENAR CAPTURA DE PANTALLA COMO FICHERO .JPG |
Autor: | Fernando Montero Cazalla |
Muy buenas:
Alguien sabría como se puede almacenar una captura de pantalla (formato CF_DIB apuntados por un handle) en un fichero con estensión JPG sin tener que crear primero el fichero en formato BMP. Ahora consigo el fichero creando el BMP y luego convirtiendolo a JPG, pero lo suyo sería poder grabarlo directamente en JPG. Muchas gracias. |
Respuesta: | Mario Gómez |
Hasta ahora nunga he visto a nadie que lo saque directo en jpg. Pero este es el que más se parece. Cactura de Pantalla: String CambiarFondo(String Original,String Copia ) { TImage *Imagen = new TImage(this); Graphics::TBitmap *Bitmap = new Graphics::TBitmap; Imagen->Picture->LoadFromFile(Original); Bitmap->Width= GetSystemMetrics(SM_CXSCREEN); Bitmap->Height= GetSystemMetrics(SM_CYSCREEN); Bitmap->Canvas->StretchDraw(Bitmap->Canvas->ClipRect,Imagen->Picture->Graphic); Bitmap->SaveToFile(Copia); if (FileExists(Copia)) { TRegistry *Registro = new TRegistry(); Registro->RootKey= HKEY_CURRENT_USER; if (Registro->OpenKey("Control Panel\\Desktop", false)) Registro->WriteString("Wallpaper", Copia); Registro->WriteString("ConvertedWallpaper", Copia); Registro->WriteString("OriginalWallpaper", Copia); Registro->WriteString("TileWallpaper", '0'); Registro->WriteString("WallpaperStyle", '2'); Registro->CloseKey(); SystemParametersInfo(SPI_SETDESKWALLPAPER,0,(Copia).c_str(),SPIF_SENDCHANGE); } } CambiarFondo("C:\\1.jpg","C:\\1.bmp"); Se creas el archivo en jpg y si te motesta en bmp solo lo borras: DeleteFileA(GetCurrentDir()+ "/1.bmp"); |