|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2010
Messaggi: 57
|
[C] ridimensionare immagine
Avrei bisogno, attraverso del codice, di ridimesionare la risoluzione una immagine con estenzione .bmp da 1920x1018 pixel in 800x600 pixel.
Potrei usare le librerie freeimage ma non so se contiene una funzione adatta e non so proprio da dove iniziare... |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Feb 2010
Messaggi: 57
|
up
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Nov 2010
Messaggi: 211
|
Secondo me devi considerare il file bmp come un qualsiasi file binario ed editare direttamente i valori. Per rimpicciolire l'immagine avresti bisogno di un algoritmo (ad esempio potresti prendere determinati punti dell'immagine e metterli insieme per costruirne una più piccola, ma sicuramente ce ne sono altri che danno risultati migliori). Ovviamente devi conoscere alla perfezione lo standard con cui le immagini bmp vengono codificate, tenendo presente che l'immagine potrebbe essere compressa quindi dovresti prima decomprimerla.
Secondo me è cosi che si dovrebbe fare ma qualche utente più esperto potrebbe darti delle informazioni più precise. Ovviamente faresti mooolto prima ad utilizzare librerie pronte, che sicuramente esistono. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
La prima suite che mi viene in mente è ImageMagick.
La prima API C tra le 2 elencate che ho aperto, MagicWand, offre proprio come primo esempio il ridimensionamento e salvataggio su file di un'immagine caricata da file. L'altra, MagickCore, l'ho consultata dopo ma la eviterei perché un po' troppo a basso livello. Non ti consiglio di reinventare la ruota andando a leggerti i pixel, a meno che non sia proprio interessato ad approfondire la tua conoscenza nell'elaborazione delle immagini. La FreeImage che hai citato non la conoscevo, ma soprattutto non ho trovato esempi in C dopo qualche minuto di ricerca (mentre ho impiegato 20 sec per trovare l'altra).
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Feb 2010
Messaggi: 57
|
Quote:
ho scaricato magickwand e ho copiato gli header nella cartella di mingw, uso codeblocks come IDE, ma compilando il codice che c'è nell' esempio mi da alcuni errori del tipo "undefined reference to 'funzione()' ". Evidentemente devo linkare le librerie ma non so come dato che è la prima volta che uso api esterne... |
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Feb 2010
Messaggi: 57
|
up
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Non ho mai usato Code::Blocks per un significativo numero di minuti.
Posso solo riportarti questa discussione.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Feb 2010
Messaggi: 57
|
ma quando avvio l' eseguibile mi chiede varie DLL
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
dll che devi mettere nella stessa cartella dell'eseguibile... o nella working directory/cartella di lavoro di debug...
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Feb 2010
Messaggi: 57
|
io avrei bisogno di qualcosa che funzioni senza dll a presso..
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Linking statico, che credo sia possibile con MagicWand (cerca le *.lib disponibili, se la statica è presente dovrebbe essere riconoscibile per lo meno per la dimensione).
Purtroppo in questo caso non ho trovato esempi specifici, né qualcosa di utile relativo alle impostazioni per Code::Blocks.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:43.




















