Così ho creato questo programma per un gioco e ho bisogno di aiuto per renderlo un po 'più automatico.Manipolazione immagini C++
Il programma acquisisce un'immagine e quindi la visualizza. Lo sto facendo su trame in OpenGL. Quando prendo lo screenshot del gioco, di solito è qualcosa di 700x400. Inserisco l'altezza e la larghezza nel mio programma, ridimensiono l'immagine a 1024x1024 (rendendola una texture POT per una migliore compatibilità) aggiungendo uno spazio vuoto (l'immagine originale rimane nell'angolo in alto a sinistra e arriva fino a (700.400) e il il resto è solo vuoto, qualcuno conosce il termine per questo?) e poi lo carica nel mio programma e regola gli angoli in modo da mostrare solo la parte da (0,0) a (700,400).
Ecco come gestisco la visualizzazione dell'immagine. Ora, vorrei rendere automatico questo. Quindi prenderei un'immagine 700x400, passala al programma che otterrebbe la larghezza e l'altezza dell'immagine (700x400), ridimensionala a 1024x1024 aggiungendo uno spazio vuoto e quindi caricandola.
Così qualcuno sa che una libreria C++ è in grado di farlo? Comunque continuerei a prendere lo screenshot manualmente.
Sto usando la libreria di immagini OpenGL semplice (SOIL) per caricare l'immagine (.bmp) e convertirla in una trama.
Grazie!
"È possibile ridimensionare automaticamente l'immagine alla successiva potenza massima di due dimensioni" - Ho davvero perso la parola "automaticamente". : D Proverò quello che hai detto. Grazie! – Tuntuni
Ho provato a caricarlo senza ridimensionarlo, ma risulta strano. Sono abbastanza sicuro che i miei angoli sono al loro posto. L'immagine diventa anche in scala di grigi e, mentre la ridimensiono, recupera parte del colore. Potrebbe fornirmi degli exmaples su SOIL_load_image e glDrawPixels o su un collegamento? Grazie. – Tuntuni
Forse prova "SOIL_FLAG_POWER_OF_TWO' o" SOIL_FLAG_TEXTURE_RECTANGLE ". –