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

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Problemer med Response.BinaryWrite
Fra : Belial


Dato : 08-03-04 16:27

Jeg har fundet et script, som skal kunne resize billeder med AspImage. Mit
problem står i response.binarywrite. Når jeg forsøger at udskrive billedet
med denne funktion, så bliver der kun vist en masse tegn. Jeg har prøvet at
ændre det til response.write i stedet, men får stadig vist nogle tegn i
stedet, dog ikke så mange. Scriptet ser således ud:

<%
Const MINPIXELS = 40
'*** get width/height of original image
Set objImg = Server.CreateObject("AspImage.Image")
objImg.LoadImage (Server.MapPath("mysterious.jpg"))
ImageHeight = objImg.MaxY
ImageWidth = objImg.MaxX

'*** calculate aspect ratio based on MINPIXELS
NewHeight = Cint(ImageHeight*MINPIXELS/ImageWidth)
NewWidth = MINPIXELS

Set objImg = Nothing

'*** creat thumbnail image
Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage (Server.MapPath("mysterious.jpg"))
Image.ImageFormat = 1
Image.JPEGQuality = 100
Image.Resize NewWidth,NewHeight
Response.BinaryWrite Image.Image
Set Image = Nothing
%>

Nogen der kan hjælpe?



 
 
Jens U. K. (08-03-2004)
Kommentar
Fra : Jens U. K.


Dato : 08-03-04 17:22


"Belial" <666_NOSPAM@esenet.dk> wrote in message
news:404c9092$0$29319$edfadb0f@dread15.news.tele.dk...
> Jeg har fundet et script, som skal kunne resize billeder med AspImage.
Mit
> problem står i response.binarywrite. Når jeg forsøger at udskrive
billedet
> med denne funktion, så bliver der kun vist en masse tegn. Jeg har prøvet
at
> ændre det til response.write i stedet, men får stadig vist nogle tegn i
> stedet, dog ikke så mange. Scriptet ser således ud:
>
> <%
> Const MINPIXELS = 40
> '*** get width/height of original image
> Set objImg = Server.CreateObject("AspImage.Image")
> objImg.LoadImage (Server.MapPath("mysterious.jpg"))
> ImageHeight = objImg.MaxY
> ImageWidth = objImg.MaxX
>
> '*** calculate aspect ratio based on MINPIXELS
> NewHeight = Cint(ImageHeight*MINPIXELS/ImageWidth)
> NewWidth = MINPIXELS
>
> Set objImg = Nothing
>
> '*** creat thumbnail image
> Set Image = Server.CreateObject("AspImage.Image")
> Image.LoadImage (Server.MapPath("mysterious.jpg"))
> Image.ImageFormat = 1
> Image.JPEGQuality = 100
> Image.Resize NewWidth,NewHeight
> Response.BinaryWrite Image.Image
> Set Image = Nothing
> %>
>
> Nogen der kan hjælpe?

Bare nogen forslag:
Måske skal du tilføje en Response.ContentType = "image/jpeg".
Er du sikker på at Image.image returnerer en binær type?

/Jens Ulrik


Belial (08-03-2004)
Kommentar
Fra : Belial


Dato : 08-03-04 18:33

> Bare nogen forslag:
> Måske skal du tilføje en Response.ContentType = "image/jpeg".

Det hjælper desværre ikke. Er der andre der kan hjælpe?



Jens U. K. (09-03-2004)
Kommentar
Fra : Jens U. K.


Dato : 09-03-04 10:28


"Belial" <666_NOSPAM@esenet.dk> wrote in message
news:404cae30$0$29380$edfadb0f@dread15.news.tele.dk...
> > Bare nogen forslag:
> > Måske skal du tilføje en Response.ContentType = "image/jpeg".
>
> Det hjælper desværre ikke. Er der andre der kan hjælpe?

Er du sikker på at Image.image returnerer en binær type?

/Jens Ulrik



Ukendt (09-03-2004)
Kommentar
Fra : Ukendt


Dato : 09-03-04 09:11

On Mon, 8 Mar 2004 16:26:40 +0100, "Belial" <666_NOSPAM@esenet.dk>
wrote:

>Nogen der kan hjælpe?

Laver du andet output på din side? Så vidt jeg kan huske, kan den ikke
lide at man laver andre response.write i samme ASP som
response.BinaryWrite. Men jeg er ikke sikker.

Så det du skal gøre, er er lægge din kode ud i en seperat fil
(resize.asp) og f.eks. kalde den med:

<IMG SRC="resize.asp?billede=mitbillede.jpg">

Din resize.asp skal så se ud som følger:

<%
picture = Request("billede")
Const MINPIXELS = 40
'*** get width/height of original image
Set objImg = Server.CreateObject("AspImage.Image")
objImg.LoadImage (Server.MapPath(picture))
ImageHeight = objImg.MaxY
ImageWidth = objImg.MaxX

'*** calculate aspect ratio based on MINPIXELS
NewHeight = Cint(ImageHeight*MINPIXELS/ImageWidth)
NewWidth = MINPIXELS

Set objImg = Nothing

'*** creat thumbnail image
Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage (Server.MapPath(picture))
Image.ImageFormat = 1
Image.JPEGQuality = 100
Image.Resize NewWidth,NewHeight
Response.BinaryWrite Image.Image
Set Image = Nothing
%>



Dette resizer ikke filen nede på din disk, men viser den kun i en
anden størrelse på skærmen.


Jeg bruger samme teknik i mit webgallery (se min signatur hvis du er
interesseret).


Mvh. Brian


--
http://www.brinch.it - Life of Brian
Hent Webgallery V3 her.

Belial (09-03-2004)
Kommentar
Fra : Belial


Dato : 09-03-04 13:20

Tak for det. Så virkede det endelig.

> Dette resizer ikke filen nede på din disk, men viser den kun i en
> anden størrelse på skærmen.

Vil det sige at hvis jeg uplaoder et billede som teknisk set fylder 300kb,
så vil den stadig fylde 300kb selv om den kun viser billedet i 1/10
størrelse? Så går lidt af det smarte jo væk gør det ikke? Jeg ville gerne
kunne lave billedet mindre og samtidig være sikker på at billedet så ville
fylde tilsvarende mindre.



Ukendt (09-03-2004)
Kommentar
Fra : Ukendt


Dato : 09-03-04 14:01

On Tue, 9 Mar 2004 13:20:07 +0100, "Belial" <666_NOSPAM@esenet.dk>
wrote:

>Vil det sige at hvis jeg uplaoder et billede som teknisk set fylder 300kb,
>så vil den stadig fylde 300kb selv om den kun viser billedet i 1/10
>størrelse? Så går lidt af det smarte jo væk gør det ikke? Jeg ville gerne
>kunne lave billedet mindre og samtidig være sikker på at billedet så ville
>fylde tilsvarende mindre.

Skal du slet ikke bruge det store billede til noget? Så forstår jeg
ikke hvorfor du lave en binarywrite, da en Image.Resize eller
Image.ResizeR vil klare tricket for dig.

Mvh. Brian


--
http://www.brinch.it - Life of Brian
Hent Webgallery V3 her.

Belial (09-03-2004)
Kommentar
Fra : Belial


Dato : 09-03-04 15:55

> Skal du slet ikke bruge det store billede til noget? Så forstår jeg
> ikke hvorfor du lave en binarywrite, da en Image.Resize eller
> Image.ResizeR vil klare tricket for dig.

Hmm... både jo og nej. Jeg vil gerne lave det sådan at man kan uploade et
billede i den størrelsen man nu engang har den liggende. Dernæst skal den
kunne blive vist som en mindre thumbnail samt et i pop-up vindue i en noget
større størrelse, som dog altid har fast størrelse og derfor ikke
nødvendigvis billedet fulde størrelse.

Det er muligt, at binarywrite ikke er den rigtige at bruge. Problemet er, at
jeg ikke er voldsom skrap til asp, og da jeg fandt scriptet tænkte jeg det
passede fint til mig. Vil det sige, at hvis jeg bruger enten image.resize
eller imgae.resizer til at gøre billedet mindre med, så kommer billedet til
at fylde de kb mindre?



Ukendt (09-03-2004)
Kommentar
Fra : Ukendt


Dato : 09-03-04 17:34

On Tue, 9 Mar 2004 15:54:32 +0100, "Belial" <666_NOSPAM@esenet.dk>
wrote:

>Hmm... både jo og nej. Jeg vil gerne lave det sådan at man kan uploade et
>billede i den størrelsen man nu engang har den liggende. Dernæst skal den
>kunne blive vist som en mindre thumbnail samt et i pop-up vindue i en noget
>større størrelse, som dog altid har fast størrelse og derfor ikke
>nødvendigvis billedet fulde størrelse.

Jamen hvis den skal vises som et større billede i et popupvindue vil
du vel netop ikke resize billedet som lige er uploadet?

>Det er muligt, at binarywrite ikke er den rigtige at bruge. Problemet er, at
>jeg ikke er voldsom skrap til asp, og da jeg fandt scriptet tænkte jeg det
>passede fint til mig. Vil det sige, at hvis jeg bruger enten image.resize
>eller imgae.resizer til at gøre billedet mindre med, så kommer billedet til
>at fylde de kb mindre?

Hvis du bruger min første løsning, vil du kunne vise en thumbnail som
er resized "on-the-fly" af AspImage og ikke nede på disken.

Ellers må jeg indrømme at jeg ikke ved hvad du mener.

Mvh. Brian
--
http://www.brinch.it - Life of Brian
Hent Webgallery V3 her.

Belial (09-03-2004)
Kommentar
Fra : Belial


Dato : 09-03-04 23:21

> Jamen hvis den skal vises som et større billede i et popupvindue vil
> du vel netop ikke resize billedet som lige er uploadet?

Jo for lad os nu sige, at folk uploader et billede som fylder 1600 X 1200
fra f.eks. et digitalkamera, så skal den i pop-up vinduet kun fylde maks 400
pixels i bredden. Derfor skal billedet resizes både til den lille thumbnail
og til den lidt større pop-up.

> Hvis du bruger min første løsning, vil du kunne vise en thumbnail som
> er resized "on-the-fly" af AspImage og ikke nede på disken.

On-the-fly... vil det sige at billede rent kilobyte mæssigt fylder det
mindre eller...?



Ukendt (10-03-2004)
Kommentar
Fra : Ukendt


Dato : 10-03-04 07:17

On Tue, 9 Mar 2004 23:20:37 +0100, "Belial" <666_NOSPAM@esenet.dk>
wrote:

>On-the-fly... vil det sige at billede rent kilobyte mæssigt fylder det
>mindre eller...?

Nej, det betyder at den gør det mens klienten (brugeren) kigger på
det. Dvs. at du ikke skal have en thumbnail liggende som du selv har
lavet. Den laver en automatisk når der er brug for det.

Men som jeg hører det, skal du bare benytte begge teknikker som
beskrevet, da det er dette du har brug for.

Mvh. Brian
--
http://www.brinch.it - Life of Brian
Hent Webgallery V3 her.

Belial (10-03-2004)
Kommentar
Fra : Belial


Dato : 10-03-04 12:51

> Nej, det betyder at den gør det mens klienten (brugeren) kigger på
> det. Dvs. at du ikke skal have en thumbnail liggende som du selv har
> lavet. Den laver en automatisk når der er brug for det.

Så det vil sige, at når den laver thumbnailen on the fly, så indlæser den
teknisk set billedets fulde antal kilobyte, selv om den kun viser billedet i
f.eks. 1/10 af dens rigtige størrelse? Undskyld hvis jeg spørger lidt dumt,
men jeg vil bare være sikker på at jeg forstår det rigtigt



Ukendt (10-03-2004)
Kommentar
Fra : Ukendt


Dato : 10-03-04 13:33

On Wed, 10 Mar 2004 12:50:32 +0100, "Belial" <666_NOSPAM@esenet.dk>
wrote:

>Så det vil sige, at når den laver thumbnailen on the fly, så indlæser den
>teknisk set billedets fulde antal kilobyte, selv om den kun viser billedet i
>f.eks. 1/10 af dens rigtige størrelse? Undskyld hvis jeg spørger lidt dumt,
>men jeg vil bare være sikker på at jeg forstår det rigtigt

Nej, den resizer billedet i serverens memory og skriver den direkte
til klienten med BinaryWrite. Altså bliver der ikke gemt en kopi af
thumbnailen på serveren.

Så hvis du resizer til 1/10 af originalen, bliver thumbnailen også ca.
1/10 i størrelse.

Mvh. Brian
--
http://www.brinch.it
Hent BBC Webgallery V3 her.

Belial (10-03-2004)
Kommentar
Fra : Belial


Dato : 10-03-04 13:28

> Nej, den resizer billedet i serverens memory og skriver den direkte
> til klienten med BinaryWrite. Altså bliver der ikke gemt en kopi af
> thumbnailen på serveren.
>
> Så hvis du resizer til 1/10 af originalen, bliver thumbnailen også ca.
> 1/10 i størrelse.

O.k. Så fik jeg det vidst endelig på plads. Tak for hjælpen!



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

Månedens bedste
Årets bedste
Sidste års bedste