Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Con la prima rete 5G Standalone attiva in Italia, WINDTRE compie un passo decisivo verso un modello di connettività intelligente che abilita scenari avanzati per imprese e pubbliche amministrazioni, trasformando la rete da infrastruttura a piattaforma per servizi a valore aggiunto
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-02-2010, 21:34   #1
zakmckraken
Member
 
Iscritto dal: Apr 2004
Messaggi: 56
[Java] Accesso a files da piu'thread

Ciao a tutti!
Mi domandavo se qualcuno aveva un idea su questo mio problema:
ho una servlet che dati un percorso e delle coordinate legge una immagine ne fa il crop e salva questa immagine con un nuovo nome tipo "percorso_x_y_w_h"
Ora, sotto .NET con i files ashx (tipo servlet per intenderci) non ci son problemi di sorta. Mentre se faccio lo stesso in Java mi trovo in una situazione inquietante:
1) Leggo a.jpg, ne taglio un pezzo che chiamo b.jpg
2) Quasi contemporaneamente leggo a.jpg e ne taglio un pezzo DIVERSO che ciamo c.jpg...
3) Il risultato e'che b.jpg e c.jpg sono uguali!!!!!!!!!!!

Notare che a.jpg e'sul classpath e viene letta tramite getClassLoader().getResourceAsStream mentre b.jpg e c.jpg sono sul filesystem reale..

Per scrivere i vari files da file system uso ImageIO.write ..non e'che il metodo non e'thread safe???

Se qualcuno ha un idea si faccia avanti che sto impazzendo!! Grazie a tutti!!
zakmckraken è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 22:46   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Non vedo problemi di thread. Probabilmente c'è un errore logico nel programma.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 22:59   #3
zakmckraken
Member
 
Iscritto dal: Apr 2004
Messaggi: 56
Eh...

Beh, ti direi di si se non funzionasse con .Net, il codice e'praticamente lo stesso (a parte le librerie di sistema e la sintassi per intenderci), con caricamento delle risorse dalle dll e salvataggio in area temporanea, o meglio cache.. mi sarei piu'aspettato che funzionasse Java! C'e'da dire anche che sono sotto Linux con una Jvm openSource, ma mi sembra strano possa centrare.
Tra l'altro se preparo le immagini corrette nella mia cache poi vengono viste correttamente.
Poi non faccio certo cose turche, ho questa servlet che serve per caricare le immagini che legge con getResourceAsStream dal classloader una jpg (per es) dal jar, se trova una jpg nella cache con lo stesso nome legge quella e la invia al client altrimenti crea in cache la nuova immagine, la legge e la invia al client...
Sto andando di debugger ma non vedo nulla di strano!!
Adesso arrivero'a segnarmi gli id delle istanze di classe per vedere se per caso ci sono duplicati che appaiono come per magia...
zakmckraken è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 23:18   #4
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Java su Linux funziona allo stesso modo di Java su Windows.

Il problema è che se hai un'immagine, ne leggi due parti diverse e quelle due parti ti risultano uguali o le letture non sono diverse o vai a sovrascrivere uno dei due risultati con l'altro.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 23:33   #5
zakmckraken
Member
 
Iscritto dal: Apr 2004
Messaggi: 56
Speravo in qualcosa del genere, in preda al delirio cosmico ho provato a caricare i files tramite la servlet uno per uno, la notizia sconvolgente e che sembra che non vengano considerate le coordinate con cui taglio l'immagine... se non altro non mi sono rimbecillito del tutto, ma a sto punto mi domando se il metodo che uso ha un senso...
Codice PHP:
//NB res e'un'array di bytes contenente l'immagine sorgente
    
BufferedImage imgRes null;
    
img ImageIO.read(new ByteArrayInputStream(res));
    
imgRes img.getSubimage(xywh);
    
ImageIO.write(imgRestype, new File(totalPath)); 
zakmckraken è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 23:53   #6
zakmckraken
Member
 
Iscritto dal: Apr 2004
Messaggi: 56
Qualcuno dice sia un bug...
https://bugs.launchpad.net/ubuntu/+s...a6/+bug/241346 e in effetti il mio caso

Quote:
When the source is a GIF file, getSubimage respects the width and height parameters, but uses the top left coordinate of the source image to create the destination, regardless of parameter values.
zakmckraken è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2010, 00:17   #7
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Nella bugparade lo danno per risolto con la versione _7 (quella attuale è la _18)

Prova a creare un buffer temporaneo:

imgRes = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
imgRes.getGraphics().drawImage(img, -x, -y, null);
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2010, 08:31   #8
zakmckraken
Member
 
Iscritto dal: Apr 2004
Messaggi: 56
Ed in effetti colla copia del buffer funziona magicamente tutto e si "dimentica" di essere una gif... Per la cronaca, se accade ad altri, il "java -version" mi dava questo:
Codice PHP:
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.6.2) (suse-5.10.1-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16mixed mode
E grazie per aiuto & collaborazione! Ieri sera poi sono crollato col pc acceso

Ultima modifica di zakmckraken : 17-02-2010 alle 08:32. Motivo: ringraziamenti!
zakmckraken è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Samsung lancia il Team Galaxy Italia per...
Magic Leap: indistinguibili dai normali ...
Aruba Cloud: trasparenza sui costi e str...
Quando il cloud si blocca e resti al fre...
Integrare per competere, la sfida digita...
Leggenda del rally e modernità: S...
La Python Software Foundation rinuncia a...
Full HD e QLED, è in offerta un TV da 32...
Honda ha rilasciato un nuovo video sul p...
Resident Evil Requiem: arriva su Switch ...
Marshall Acton III in promo su Amazon in...
2 portatili che costano poco ma vanno be...
Smartphone potenti sotto i 300€: ecco i ...
28 Offerte Amazon da non perdere: smartp...
X torna a crescere in Europa: +7 milioni...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:06.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v