/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Billeder bliver ikke skrevet
Fra : Gex


Dato : 11-01-04 23:27

Jeg har lavet et program der skal læse en række billeder ind, lave nogle
ændringer, og gemme de redigerede billeder igen.

Problemet er at nogle af billederne bliver sorte, det er tilfældigt hvilke
billeder der bliver sorte og jeg har fundet ud af at det hjælper at sætte en
stor 10 sekunders forsinkelse ind mellem hvert billede der bliver skrevet.

Det er ikke en holdbar løsning da det sløver mit program.
Lige nu bliver det hele kørt i en statisk metode men jeg har også prøvet at
lave et objekt per billede.
Det giver samme resultat... Jeg prøvede også med nogle threads men det blev
lidt for kompliceret for mig.

Er der nogen der har nogle forslag? Jeg har kun programmeret java i ½ år så
mine erfaringer med det er noget begrænsede.



 
 
Mads Andreasen (12-01-2004)
Kommentar
Fra : Mads Andreasen


Dato : 12-01-04 19:57

Hej Gex

Du bliver nok nødt til at indvie os andre lidt i din kode, da det ellers nok
kan blive lidt svært at hjælpe.

Jeg kunne forestille mig noget kode der viste hvordan du gemmer filerne, og
kommer videre til næste billede.

Med Venlig Hilsen
Mads

"Gex" <x@x.mil> wrote in message news:btsijs$n0i$1@news.cybercity.dk...
> Jeg har lavet et program der skal læse en række billeder ind, lave nogle
> ændringer, og gemme de redigerede billeder igen.
>
> Problemet er at nogle af billederne bliver sorte, det er tilfældigt hvilke
> billeder der bliver sorte og jeg har fundet ud af at det hjælper at sætte
en
> stor 10 sekunders forsinkelse ind mellem hvert billede der bliver skrevet.
>
> Det er ikke en holdbar løsning da det sløver mit program.
> Lige nu bliver det hele kørt i en statisk metode men jeg har også prøvet
at
> lave et objekt per billede.
> Det giver samme resultat... Jeg prøvede også med nogle threads men det
blev
> lidt for kompliceret for mig.
>
> Er der nogen der har nogle forslag? Jeg har kun programmeret java i ½ år

> mine erfaringer med det er noget begrænsede.
>
>



Gex (12-01-2004)
Kommentar
Fra : Gex


Dato : 12-01-04 22:50

> Du bliver nok nødt til at indvie os andre lidt i din kode, da det ellers
nok
> kan blive lidt svært at hjælpe.
>
> Jeg kunne forestille mig noget kode der viste hvordan du gemmer filerne,
og
> kommer videre til næste billede.

> Du bliver nok nødt til at indvie os andre lidt i din kode, da det ellers
nok
> kan blive lidt svært at hjælpe.
>
> Jeg kunne forestille mig noget kode der viste hvordan du gemmer filerne,
og
> kommer videre til næste billede.

Fra billede til billede:
tmpStr indeholder en sti til billedet og navnet på det nye billede


....
for (int i = 1; i < tmpStr.length; i++) {
if (tmpStr[0][0] != null && tmpStr[i][0] != null && tmpStr[i][1] !=
null) {
ImageCut.makeImage(tmpStr[0][0], tmpStr[i][0], tmpStr[i][1], base,
writeData);
}
}
....


Dette er fra ImageCut
jeg prøvede også at bruge en BufferedOutputStream som input til ImageIO og
så flush'e og lukke for hvert billede men det gav samme resultat.

....
BufferedImage bi = new BufferedImage(xmax - xmin, ymax - ymin,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = bi.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);

graphics2D.drawImage(nyImg, 0, 0, xmax-xmin, ymax-ymin, xmin, ymin, xmax,
ymax, null);

try {
ImageIO.write(bi, "png", new File(base+"\\"+outFil+".png"));
writeData.writeItem(new ImageOver(outFil, xmax, ymax, xmin, ymin));
//Thread.currentThread().sleep(1000);
} catch (Exception e) {
System.err.println(e);
}
....

Håber i kan hjælpe.



> "Gex" <x@x.mil> wrote in message news:btsijs$n0i$1@news.cybercity.dk...
> > Jeg har lavet et program der skal læse en række billeder ind, lave nogle
> > ændringer, og gemme de redigerede billeder igen.
> >
> > Problemet er at nogle af billederne bliver sorte, det er tilfældigt
hvilke
> > billeder der bliver sorte og jeg har fundet ud af at det hjælper at
sætte
> en
> > stor 10 sekunders forsinkelse ind mellem hvert billede der bliver
skrevet.
> >
> > Det er ikke en holdbar løsning da det sløver mit program.
> > Lige nu bliver det hele kørt i en statisk metode men jeg har også prøvet
> at
> > lave et objekt per billede.
> > Det giver samme resultat... Jeg prøvede også med nogle threads men det
> blev
> > lidt for kompliceret for mig.
> >
> > Er der nogen der har nogle forslag? Jeg har kun programmeret java i ½ år
> så
> > mine erfaringer med det er noget begrænsede.
> >
> >



Christian Holm (13-01-2004)
Kommentar
Fra : Christian Holm


Dato : 13-01-04 15:29

"Gex" <x@x.mil> wrote in message news:btsijs$n0i$1@news.cybercity.dk...
> Jeg har lavet et program der skal læse en række billeder ind, lave nogle
> ændringer, og gemme de redigerede billeder igen.
>
> Problemet er at nogle af billederne bliver sorte, det er tilfældigt hvilke
> billeder der bliver sorte og jeg har fundet ud af at det hjælper at sætte
en
> stor 10 sekunders forsinkelse ind mellem hvert billede der bliver skrevet.

Uden at være helt sikkert mener jeg at det er fordi at AWT læser billederne
ind asynkront. Kig på MediaTracker, den kan bruges til at vente på at
billederne er læst.

Christian



Gex (13-01-2004)
Kommentar
Fra : Gex


Dato : 13-01-04 18:39

> Uden at være helt sikkert mener jeg at det er fordi at AWT læser
billederne
> ind asynkront. Kig på MediaTracker, den kan bruges til at vente på at
> billederne er læst.

Jeg er ret sikker på at billederne bliver indlæst korrekt for det nye
billede bliver dannet ud fra forskellen på de indlæste billeder, og
størrelse på det nye billede passer med størrelse på det områder der er
forskelligt.

Jeg vil kikke noget mere på MediaTracker. Med så vidt jeg kan huske så
kræver MT at man henviser til en Frame eller Applet..



Gex (14-01-2004)
Kommentar
Fra : Gex


Dato : 14-01-04 12:31


"Gex" <x@x.mil> skrev i en meddelelse
news:bu1afn$2100$1@news.cybercity.dk...
> > Uden at være helt sikkert mener jeg at det er fordi at AWT læser
> billederne
> > ind asynkront. Kig på MediaTracker, den kan bruges til at vente på at
> > billederne er læst.
>
> Jeg er ret sikker på at billederne bliver indlæst korrekt for det nye
> billede bliver dannet ud fra forskellen på de indlæste billeder, og
> størrelse på det nye billede passer med størrelse på det områder der er
> forskelligt.
>
> Jeg vil kikke noget mere på MediaTracker. Med så vidt jeg kan huske så
> kræver MT at man henviser til en Frame eller Applet..

Jeg kikkede på MT og den kan ganske korrekt bruges til at holde øje med at
bilelderne er loaded...
Men jeg skal sådan set ha fundet ud af hvorfor de ikek bliver gemt
korrekt...
Jeg tænkte om det måske var noget i stil med MT men som kunne give give
besked når filerne var gemt i stedet for hentet...



Gex (14-01-2004)
Kommentar
Fra : Gex


Dato : 14-01-04 16:59

Jeg fandt problemet i min kode, det er åbenbart denne linje der forudsagede
fejlen.

Graphics2D graphics2D = bi.createGraphics();

hvis jeg indsætter en 100ms forsinkelse efter den linje så bliver den færdig
og kan levere dataen som skal skrives.



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste