Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305

    Ridimensionamento file immagine java

    Ho il seguente problema: devo ridimensionare un immagine letta da file, in modo tale che il suo contenuto possa essere inserito nel campo blob del db mysql (max 65535byte) . Come posso fare?
    così la ridimensiono, però adesso ho bisogno di creaare un oggetto file dall'immagine ridimensionata
    codice:
    this.foto=foto.getScaledInstance(dim.width, dim.height, Image.SCALE_SMOOTH);
    Ultima modifica di linux_r; 03-07-2014 a 10:42

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    Ho il seguente problema: devo ridimensionare un immagine letta da file, in modo tale che il suo contenuto possa essere inserito nel campo blob del db mysql (max 65535byte) . Come posso fare?
    Devi per forza usare il tipo BLOB? Non puoi usare un MEDIUMBLOB o un LONGBLOB?

    Comunque il punto è che nel blob ci deve essere lo stream della immagine in un formato standard (gif, png, ecc...). E stabilire una larghezza/altezza max della immagine avendo come vincolo la lunghezza in byte dello stream .... richiede appunto un po' di valutazioni.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    come potrei fare a ridimensionare un file immagine quindi in modo che non superi l'ampiezza di un blob?
    In ogni caso comunque mi farebbe piacere capire se posso convertire un Image , in un array di byte .

    Nel campo blob del db mysql vengono memorizzati i byte dell'immagine giusto? Perchè dici che c'è lo stream dell'immagine?
    Ultima modifica di linux_r; 03-07-2014 a 11:06

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    28
    Salvare immagini in un database non è proprio il massimo per vari motivi che si possono intuire e che si possono facilmente trovare googlando... L'ideale sarebbe salvare l'immagine nel file system e scrivere il path nel database...

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    Nel campo blob del db mysql vengono memorizzati i byte dell'immagine giusto? Perchè dici che c'è lo stream dell'immagine?
    Una cosa che ha senso (e secondo me è l'unica che ha davvero senso) è avere nello stream del blob esattamente la sequenza di byte per uno dei formati di immagine noti, appunto gif, png, jpeg, ecc....
    Altrimenti scusa ... come salveresti tu l'immagine?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da javatore Visualizza il messaggio
    Salvare immagini in un database non è proprio il massimo per vari motivi che si possono intuire
    Quali? Ci sono sicuramente altrettanti buoni motivi per salvare l'immagine su DB. Se le salvi su file-system, dove le metti? In una unica cartella? E se arrivi es. a 10000 file, ti sembra buono? Se non le salvi in un'unica directory, con quali criteri le distribuisci sul file-system?
    Mi pare chiaro che su file-system ci sono molte più cose e questioni da valutare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Una cosa che ha senso (e secondo me è l'unica che ha davvero senso) è avere nello stream del blob esattamente la sequenza di byte per uno dei formati di immagine noti, appunto gif, png, jpeg, ecc....
    Altrimenti scusa ... come salveresti tu l'immagine?
    Scusa ,forse non colgo la risposta. nel campo blob sono contenuti i byte dell'immagine esatto?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    Scusa ,forse non colgo la risposta. nel campo blob sono contenuti i byte dell'immagine esatto?
    Sì certo ma .... quali byte? Che rappresentano cosa e come?
    Vuoi "inventarti" un tuo formato? Es. tanto per dirne uno banalissimo: un int (4 byte) per la larghezza, poi un int per la altezza e di seguito 3 byte per ciascun pixel (R G B)?
    Innanzitutto non ci sarebbe alcuna compressione, quindi sprecheresti molto spazio. Poi comunque un formato così è inventato di sana pianta, non è standard e tutto il codice di codifica/decodifica sarebbe totalmente a tuo carico.

    Quindi? Appunto ... generalmente è meglio usare uno dei formati "noti" e standard, tipo gif, png, jpeg, ecc.... E non c'è da inventare alcun codec .... nel framework (perlomeno da Java 1.4) esiste la API ImageIO che supporta già una serie di formati.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    28
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Quali? Ci sono sicuramente altrettanti buoni motivi per salvare l'immagine su DB. Se le salvi su file-system, dove le metti? In una unica cartella? E se arrivi es. a 10000 file, ti sembra buono? Se non le salvi in un'unica directory, con quali criteri le distribuisci sul file-system?
    Mi pare chiaro che su file-system ci sono molte più cose e questioni da valutare.
    Si indubbiamente questo è uno di quegli argomenti per cui non esiste un approccio "migliore" in assoluto, tant'è che in letteratura esistono tante pubblicazioni che comparano i due approcci elencando e testando i pro e i contro di utilizzare o meno i blob nei database... Alla fine ognuno fa le sue scelte in base alle contingenze, agli studi e all'esperienza...

    Io, ad esempio, ritengo che un database relazionale non debba essere utilizzato come mero contenitore; inoltre nelle mie attività sono all'ordine del giorno operazioni di dump/restore e ripristino di tabelle corrotte, per cui è importante avere tabelle snelle e leggere...

    Nel caso da te menzionato, ovvero 10000 righe con BLOB (quindi 64KB ognuno) ogni query/update ha sicuramente un overhead maggiore rispetto ad una lettura su file system e se il dbms non è sulla stessa macchina del web server (in un'architettura multi-livello) il database può diventare anche un bel collo di bottiglia... Te l'immagini lo streaming di un mp3 di media qualità memorizzato in un blob?? Non penso che i grandi portali online lo facciano...

    Certo organizzare una bella quantità di immagini sul file system non è da sottovalutare, ma onestamente non penso che sia il punto più problematico del discorso... Un criterio lo si trova... Dipende dalle proprie esigenze, dalla frequenza di scrittura, ecc... In un'applicazione su cui ho lavorato prendevo delle immagini da telecamere e le salvavo in cartelle/sottocartelle ordinate per data e ora e non ho mai avuto grandi problemi...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.