Visualizzazione dei risultati da 1 a 6 su 6

Discussione: CxImage in DevC++

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    18

    CxImage in DevC++

    Dopo aver provato la libreria Freeimage ho visto da altri sorgenti l'uso della libreria CxImage.
    L'ho scaricata e ho cercato di usarla ma non ci riesco, da molti errori.
    Uso il DevC++
    Aiutatemi ...

  2. #2
    Aiutati che Zio t'aiuta...

    QUALI errori ricevi? Hai letto la documentazione ufficiale? Non so se CxImage sia compatibile o meno con MinGW.

    In ogni caso ti ripeto che difficilmente l'errore è nella FreeImage, mi sembra molto più probabile che i tuoi file BMP siano malformed.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    18
    XD
    No l'errore non è nella freeimage ma ho confrontato 2 programmi uno mio e uno di un altro.
    Il codice che usiamo per fare lo screenshot è simile, ma nella conversione lui utilizza CxImage per convertire l'immagine dello screenshot, e ci riesce.
    Io utilizzo Freeimage e l'immagine non me la converte.
    Quindi a parità di immagine, freeimage a me nn riesce e a lui Cximage si.

  4. #4
    Ma perché non pubblichi un file zippato contenente queste benedette immagini da qualche parte così possiamo capire dove è il problema?!

    Se proprio vuoi usare CxImage devi comunicare TUTTI gli errori che ricevi in fase di compilazione... Non abbiamo ancora in dotazione la sfera di cristallo.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    18
    Ok mi arrendo dai .... trasferiro questa benedetta immagine in formato .bmp
    L'ultima cosa che chiedo è questa:
    Posto di seguito il codice per fare lo screenshot che ho trvato da un post su questo forum:


    screenshot()
    {

    BITMAPINFO bmi; //info del file di destinazione
    BITMAPFILEHEADER bfh; //header del file di destinazione

    int Lunghezza;
    int Altezza;

    HWND hWnd;

    HDC hdc ;
    HDC memDC;

    HBITMAP hbm ;
    HBITMAP hbmOld;

    BYTE *Bytes;

    HANDLE hfile;

    //File di salvataggio
    FILE *screenshoter;

    int infosize = 0;
    int size = 0;
    int bitsize = 0;

    //Dimensioni da catturare
    Lunghezza = GetSystemMetrics(SM_CXSCREEN);
    Altezza = GetSystemMetrics(SM_CYSCREEN);


    //Creazione Bitmap
    hWnd = GetDesktopWindow();
    hdc = GetDC(hWnd);
    memDC = CreateCompatibleDC(hdc);
    hbm = CreateCompatibleBitmap(hdc, Lunghezza, Altezza);
    hbmOld = (HBITMAP)SelectObject(memDC, hbm);

    BitBlt(memDC, 0, 0, Lunghezza, Altezza, hdc, 0, 0, SRCCOPY);


    ZeroMemory(&bmi,sizeof(BITMAPINFO));
    bmi.bmiHeader.biSize=sizeof(bmi.bmiHeader);
    bmi.bmiHeader.biWidth=GetSystemMetrics(SM_CXSCREEN );
    bmi.bmiHeader.biHeight=GetSystemMetrics(SM_CYSCREE N);
    bmi.bmiHeader.biPlanes=1;
    bmi.bmiHeader.biBitCount=16;
    bmi.bmiHeader.biCompression= BI_RGB; //BI_RLE4; // BI_RGB;
    bmi.bmiHeader.biSizeImage=3 * bmi.bmiHeader.biWidth * bmi.bmiHeader.biHeight;

    //Alloca memoria per l'immagine
    Bytes = (byte *) malloc(bmi.bmiHeader.biSizeImage);


    GetDIBits( memDC, //handle to device
    hbm, //Handle to the bitmap
    0, //first scan line to set in destination bitmap
    bmi.bmiHeader.biHeight, //number of scan lines to copy
    Bytes, //address of array for bitmap bits
    &bmi, //address of structure with bitmap data
    DIB_RGB_COLORS ); //RGB or palette index //DIB_PAL_COLORS);

    infosize = sizeof(BITMAPINFOHEADER);

    size = sizeof(BITMAPFILEHEADER);

    bfh.bfType='MB';
    bfh.bfOffBits=sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
    bfh.bfSize=bmi.bmiHeader.biSizeImage + bfh.bfOffBits;

    //Apre il file di salvataggio
    screenshoter = fopen("Immagine.bmp","wb");

    //Se il file non à errore
    if (screenshoter != NULL)
    {
    //Scrive l'immagine
    fwrite(&bfh, 1, sizeof(BITMAPFILEHEADER), screenshoter);
    fwrite(&bmi, 1, infosize, screenshoter);
    fwrite((char *)Bytes, 1, bmi.bmiHeader.biSizeImage, screenshoter);
    //Chiude il file
    fclose(screenshoter);
    }

    //Rilascia le risorse
    DeleteDC(memDC);
    ReleaseDC(hWnd,hdc);
    DeleteObject(hbm);


    hfile = NULL;
    Bytes = NULL;
    //Libera memoria
    free(Bytes);
    }


    Il file .bmp dello screenshot è di 1,5 mb.
    Qualcuno saprebbe modificare questo codice in modo da far pesare di meno il file .bmp?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Beh ... il codice non c'entra ... dipende dai punti orrizzontali, da quelli verticali e dai colori ...

    Con 1024 x 768 x 2 byte per i colori il totale e' 1,5 M ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.