- Home
- Categorie
- Coding e Sistemistica
- PHP
- Motore di ricerca per immagini
-
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!
-
@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.
-
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.
-
@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!
-
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]
-
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....
-
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?!?!
-
[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]