• User Newbie

    Motore di ricerca per immagini

    Ho un progetto didattico da sviluppare: si tratta di un motore di ricerca per immagini. La cosa è molto semplice dal punto di vista teorico.
    Devo fare l'upload delle immagini (automaticamente si dovranno leggere alcune info dell'immagine, quale il nome, il numero di colori, il formato e la dimensione che saranno inserite nel db). Poi queste immagini dovranno essere reperite tramite un motore di ricerca.

    Non trovo molta documentazione sul web e cmq non soddisfacente per l'applicazione che devo creare. Qualcuno ha qualche consiglio o script da implementare?

    Grazie mille!


  • Super User

    @lca.trr said:

    Ho un progetto didattico da sviluppare: si tratta di un motore di ricerca per immagini. La cosa è molto semplice dal punto di vista teorico.
    Devo fare l'upload delle immagini (automaticamente si dovranno leggere alcune info dell'immagine, quale il nome, il numero di colori, il formato e la dimensione che saranno inserite nel db). Poi queste immagini dovranno essere reperite tramite un motore di ricerca.

    Non trovo molta documentazione sul web e cmq non soddisfacente per l'applicazione che devo creare. Qualcuno ha qualche consiglio o script da implementare?

    Grazie mille!
    Come vuoi farlo? Linguaggio? DB?
    Immagino php-mysql?
    Che cosa dovrebbe fare cercare? Nome e data? Comunque qualasiasi cosa vuoi fargli cercare, basta che metti tutte le info in un db e poi fai semplicemente una select.


  • User Newbie

    Lo faccio in php e mysql. Il mio problema principale è quello di uploadare le immagini (ho trovato tanti modi x farlo ma non so quale sia il migliore), con la possibilità di avere una thumbnail in automatico e inserire nel db le info classiche quali numero di colori, dimensione e nome. L'estrapolazione non ho problemi.


  • Super User

    @lca.trr said:

    Lo faccio in php e mysql. Il mio problema principale è quello di uploadare le immagini (ho trovato tanti modi x farlo ma non so quale sia il migliore), con la possibilità di avere una thumbnail in automatico e inserire nel db le info classiche quali numero di colori, dimensione e nome. L'estrapolazione non ho problemi.
    Beh se ne hai trovati molti di metodi, problemi non ne hai ! Pensa se non ne avevi trovato nemmeno uno! Per le thumbnail e per ottenere le informazioni dall'immagine, ci saranno sicuramente delle librerie php già belle e pronte. Io per questo di solito contatto un mio grande amico, Google!


  • Super User

    Il mio amico mi ha detto che si può usare questo, ma aveva anchemolti altri consigli. 😉
    [PHP]<?php
    // File and new size
    $filename = 'test.jpg';
    $percent = 0.5;

    // Content type
    header('Content-type: image/jpeg');

    // Get new sizes
    list($width, $height) = getimagesize($filename);
    $newwidth = $width * $percent;
    $newheight = $height * $percent;

    // Load
    $thumb = imagecreatetruecolor($newwidth, $newheight);
    $source = imagecreatefromjpeg($filename);

    // Resize
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

    // Output
    imagejpeg($thumb);
    ?> [/PHP]


  • User Newbie

    Dunque, devo innanzitutto dare la possibilità ad un utente di uploadare un'immagine dal suo pc compilando un campo *titolo *ed uno *keyword *(le informazioni relative ad estensione, *dimensione *e quantità di colori dovranno essere lette dallo script e immagazinate pure loro nel db mysql); l'immagine verrà uploadata dentro la cartella *img *e nello stesso momento verrà creata una thumbnail (dentro la cartella thumb).

    Qualcuno mi aiuti.... :arrabbiato:


  • User Newbie

    PS: Google non mi ha dato molti risultati in tal senso... Ma è mai possibile che mai nessuno abbia pensato di realizzare un motore di ricerca per immagini in php?!?!


  • Super User

    [php]<form action="" method="post" enctype="multipart/form-data">
    <!-- Campo file di nome "image" -->
    <input name="image" type="file" size="40" />
    <br /><br />
    <!-- Pulsante -->
    <input name="upload" type="submit" value="Carica immagine" />
    </form>
    <?
    if (isset($_POST[clicked]){
    do {
    if (is_uploaded_file($_FILES['image']['tmp_name'])) {
    // Ottengo le informazioni sull'immagine
    list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']);
    // Controllo che le dimensioni (in pixel) non superino 160x180
    if (($width > 160) || ($height > 180)) {
    $msg = "<p>Dimensioni non corrette!!</p>";
    break;
    }
    // Controllo che il file sia in uno dei formati GIF, JPG o PNG
    if (($type!=1) && ($type!=2) && ($type!=3)) {
    $msg = "<p>Formato non corretto!!</p>";
    break;
    }
    // Verifico che sul sul server non esista già un file con lo stesso nome
    // In alternativa potrei dare io un nome che sia funzione della data e dell'ora
    if (file_exists('img/'.$_FILES['image']['name'])) {
    $msg = "<p>File già esistente sul server. Rinominarlo e riprovare.</p>";
    break;
    }
    // Sposto il file nella cartella da me desiderata
    if (!move_uploaded_file($_FILES['image']['tmp_name'], 'img/'.$_FILES['image']['name'])) {
    $msg = "<p>Errore nel caricamento dell'immagine!!</p>";
    break;
    }
    }
    } while (false);
    echo $msg;
    mysql_query("INSERT INTO immagini (titolo,dimensione) VALUES ($_FILES['image']['name'],$_FILES['image']");
    // Ottengo le informazioni sull'immagine originale
    list($width, $height, $type, $attr) = getimagesize($_SERVER['DOCUMENT_ROOT'].'/img/$_FILES['image']['name']');
    // Creo la versione 120*90 dell'immagine (thumbnail)
    $thumb = imagecreatetruecolor(120, 90);
    $source = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].'$_FILES['image']['name']');
    imagecopyresized($thumb, $source, 0, 0, 0, 0, 120, 90, $width, $height);
    // Salvo l'immagine ridimensionata
    imagejpeg($thumb, $_SERVER['DOCUMENT_ROOT']."$_FILES['image']['name']", 75);
    }?>[/php]