View Full Version : [C/C++] resize immagini
salve,
non conosco molto bene ne C ne C++, ma ho bisogno di fare un programmino (non ditemi di prendere robe già fatte perché voglio proprio farlo io :)) che mi resizi le immagini inserite. Deve solo resizarle, dev'essere user friendly (quindi con interfaccia grafica).
Consigliate di farlo in C o C++?
Da dove parto? Che librerie utilizzo? Sapete darmi una via da seguire?
Grazie ;)
up...
se si può fare con altri linguaggi illuminatemi :D
però dev'essere un eseguibile
giangian2
24-09-2006, 09:54
ciao,
devi utilizzare una libreria di gestione immagine, tipo http://www.codeproject.com/bitmap/cximage.asp
Ce ne sono molte in giro per internet, ma questa è l'unica che mi viene in mente... anche perchè una volta ho provato ad utilizzarla e non mi sembrava molto difficile, rispetto ad altre che erano più ostiche.
Dipende anche dal tipo di file che devi aprire, perchè non tutte le librerie che si trovano riescono ad aprire tutti i tipi di immagini.
ciaoooo
Bella, grazie...ma non si trovano degli esempi in giro? :fagiano:
giangian2
24-09-2006, 11:18
ciao,
nel sito che ti ho seganalato puoi scaricare i sorgenti ed il programma dimostrativo, unico vincolo devi essere registrato... ma la registrazione è gratuita.
Se giri un pò nel sito che ti ho indicato ci sono anche altre librerie per fare la stessa cosa, vedi tu cosa preferisci.
ciaoooooooooooo
tomminno
24-09-2006, 14:15
Secondo me con le OpenCV della Intel fai tutto quello che ti serve e anche di più.
Secondo me con le OpenCV della Intel fai tutto quello che ti serve e anche di più.
Grazie, proverò anche questa :)
Se non vuoi farti l'algoritmo di ridimensionamento da solo queste librerie sono ottime: http://www.boutell.com/gd/
Sono in pratica quelle usate da php...
Se non vuoi farti l'algoritmo di ridimensionamento da solo queste librerie sono ottime: http://www.boutell.com/gd/
Sono in pratica quelle usate da php...
Ho provato a scaricarle ma non capisco come "installarle"... sono piuttosto noob in C, qualcuno mi spiega brevemente pf? :) (uso dev-cpp 5b)
Non devi installarle... Scarica questo: http://www.boutell.com/gd/http/gdwin32.zip
Nello zip c'è il file di libreria per i compilatori compatibili con GCC come Mingw32... Quindi puoi usare la libreria con Dev-C++ o Code::Blocks o qualsiasi altro... Basta che tu aggiunga tra le opzioni del linker il file libgd.a
Poi metti la directory dove hai estratto i file fra le "include dir" dell'ambiente di sviluppo...
Qui c'è un esempio di uso:
http://www.boutell.com/gd/manual2.0.33.html#basics
E qui c'è la lista delle funzioni:
http://www.boutell.com/gd/manual2.0.33.html#reference
Ho provato a scaricarle ma non capisco come "installarle"... sono piuttosto noob in C, qualcuno mi spiega brevemente pf? :) (uso dev-cpp 5b)Prova questa procedura.
Scarica il pacchetto gdwin32.zip (i file sono contenuti in una cartella gdwin32), poi nel Dev-C++ vai nella configurazione del compilatore (Options -> Compiler options) e imposta il path di include e di libreria in modo che puntino anche a quella directory gdwin32.
Poi nel tuo progetto imposta il link con libbgd.a e nel sorgente includi (credo) <gd.h>. Ultima nota: la libreria bdg.dll ovviamente deve essere in PATH.
Non devi installarle... Scarica questo: http://www.boutell.com/gd/http/gdwin32.zip
Nello zip c'è il file di libreria per i compilatori compatibili con GCC come Mingw32... Quindi puoi usare la libreria con Dev-C++ o Code::Blocks o qualsiasi altro... Basta che tu aggiunga tra le opzioni del linker il file libgd.a
Poi metti la directory dove hai estratto i file fra le "include dir" dell'ambiente di sviluppo...
Qui c'è un esempio di uso:
http://www.boutell.com/gd/manual2.0.33.html#basics
E qui c'è la lista delle funzioni:
http://www.boutell.com/gd/manual2.0.33.html#reference
Sempre molto completo, grazie mille :D
Ok, con questo posso modificare delle immagini in modo piuttosto semplice, ma per il resto? Parte grafica?
Vorrei ad esempio un "Sfoglia" (tipo l'input type=file)....
Ho proprio bisogno di un interfaccia grafica per l'utente "stupido" :)
Per quello che cosa utilizzo?
Ho proprio bisogno di un interfaccia grafica per l'utente "stupido" :)
Per quello che cosa utilizzo?API Win32, wxWidgets, GTK, ecc....
Quello che preferisci.
ti conviene un ambiente di sviluppo visuale per iniziare, altrimenti on ne esci più
Borland Builder C++ è un buon strumento per fare ciò che dici; poi in rete trovi montagne di componenti.
Però non so le ultime di casa Borland....supporta ancora BCB ?????
oramai ho già iniziato a vedere Win32API quindi....continuo così :)
ho imparato molto di C solamente a iniziare sta cosa, ci sono delle cose che non ti può insegnare nessuno...
Grazie a tutti ;)
Secondo em non ti conviene...con le WinAPI ci metti una vita... Io userei GTK+ per il C e wxWidgets per il C++...
Secondo em non ti conviene...con le WinAPI ci metti una vita... Io userei GTK+ per il C e wxWidgets per il C++...
Domani provo GTK+, meglio cambiare all'inizio prima che sia troppo tardi :sofico:
GTK non necessita le runtime?
Sì...ma lo puoi distribuire con l'applicazione...
Sì...ma lo puoi distribuire con l'applicazione...
e ma dev'essere una cosa veloce....proprio un applicazione che l'utente apre, fa quel che deve fare e chiude (verrebbe usato da un 300 persone ca. )...
in effetti con ste api non é il max :(
non c'é nemmeno troppa documentazione in italiano
GTK+ però dopo dovrei distribuire anche l'altro pacchetto...non conviene...qualcosa d'altro c'é? :mc:
Non devi distribuire l'altro pacchetto...basta mettere le dll che ti servono nella dir del tuo programma...
Non devi distribuire l'altro pacchetto...basta mettere le dll che ti servono nella dir del tuo programma...
Ah k....pensavo sbagliato :D
Sarebbe più comodo comunque un file unico...ma vabbé ^^
grazie
Eccomi di nuovo con un problema(ora con GTK)...scusami ma sono veramente imbranato:
l'installazione
!
Con un semplice codice come questo:
#include <gtk/gtk.h>
int main( int argc, char *argv[])
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
ho copiato la cartella gtk nella cartella include di dev-cpp, nella compilazione ci mette un pacco e alla fine esce:
[General Error] Too many messages; abort.
There must be something terribly wrong with your code. Please fix it.
il problema é nell' #include <gtk/gtk.h>....se metto solo quello lo fa cmq :(
up :cry: ho provato di tutto...
up :cry: ho provato di tutto...Io ho fatto una prova veloce con il Dev-C++. Sono riuscito a compilare correttamente il sorgente che hai postato sopra.
Solo che ..... c'è da scaricare e spacchettare 'na marea di pacchetti!!!!
Devi prendere tutti i pacchetti 'dev':
1) glib-dev-NNN.zip
2) gtk+-dev-NNN.zip
3) pango-dev-NNN.zip
4) atk-dev-NNN.zip
5) cairo-dev-NNN.zip
Più i pacchetti di run-time che contengono le DLL (e poi metterle in PATH):
1) glib-NNN.zip
2) gtk+-NNN.zip
3) pango-NNN.zip
4) atk-NNN.zip
5) cairo-NNN.zip
Poi mettere nella configurazione globale del Dev-C++ i path di include. Ad esempio:
C:\Programmi\glib\lib\glib-2.0\include
C:\Programmi\gtk\lib\gtk-2.0\include
C:\Programmi\atk\include\atk-1.0
C:\Programmi\cairo\include
C:\Programmi\cairo\include\cairo
C:\Programmi\pango\include\pango-1.0
C:\Programmi\glib\include\glib-2.0
C:\Programmi\gtk\include\gtk-2.0
Poi i path per la lib. Ad esempio:
C:\Programmi\atk\lib
C:\Programmi\cairo\lib
C:\Programmi\pango\lib
C:\Programmi\glib\lib
C:\Programmi\gtk\lib
Poi nelle proprietà del progetto devi "tirarti" dentro tutti i file .a delle varie lib tramite il pulsante "Load object files".
A quel punto compili. Assicuro che funziona. Ma la mia prima intenzione sarebbe quella di sparare di brutto agli sviluppatori del GTK. :D (scherzo eh! non sparo a nessuno ;) )
Ti ringrazio un casino per il tempo sprecato per me :)
A questo punto non faccio prima a installarlo col package manager che fa tutto lui? :D
edit
vedo che non va nemmeno con il package manager :asd:
domani provo come hai detto tu ^^
/edit
A questo punto non faccio prima a installarlo col package manager che fa tutto lui? :DTutta l'impostazione dei path e del progetto nel Dev-C++ devi farla comunque tu a mano.
Mi piacerebbe sapere come hai fatto a scoprire che bisognava fare tutta quella procedura....
non é normale
Sul sito ;)
Runtime for GTK+ 2.8.20. Requires GLib 2.12, atk 1.10, Pango 1.12 and cairo 1.2. In addition, if you want to be able to load PNG, JPEG or TIFF images with gdk-pixbuf, you will need libpng and zlib, libjpeg and libtiff respectively.
Scusa se rompo di nuovo ma ci voglio arrivare fino in fondo stavolta!
http://img99.imageshack.us/img99/3489/lib2gx3.th.jpg (http://img99.imageshack.us/my.php?image=lib2gx3.jpg)
http://img138.imageshack.us/img138/1056/libvz6.th.jpg (http://img138.imageshack.us/my.php?image=libvz6.jpg)
http://img205.imageshack.us/img205/4443/gtksv6.th.jpg (http://img205.imageshack.us/my.php?image=gtksv6.jpg)
cosa ho sbagliatooooo?!
i pacchetti di runtime non le ho trovate ma credo che almeno compilare senza 2000 errori dovrebbe...
cosa ho sbagliatooooo?!Ma hai letto il mio post sopra, quello con tutti i path??? :confused:
Perché non mi sembra che tu abbia inserito tutti i path che ho elencato io!
Ok scusa, ora funzia ma mi mancano solo le runtime (compila tutto ma non succede niente)
dove le trovo? :stordita:
dove le trovo? :stordita:<qui> (http://www.gimp.org/~tml/gimp/win32/downloads.html)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.