Avatar billede pfp Nybegynder
17. juli 2002 - 22:49 Der er 13 kommentarer og
2 løsninger

Problem med billedekomponent...

Hej,

Jeg har et problem med komponenten ASP Image. Jeg skal lave et thumbnail og det gør jeg med følgende kode:

<%
Const MINPIXELS = 120
'*** get width/height of original image
Set objImg = Server.CreateObject("AspImage.Image")
objImg.LoadImage (Server.MapPath("Grafik/310185-2.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("Grafik/310185-2.jpg"))
Image.ImageFormat = 1
Image.JPEGQuality = 100
Image.Resize NewWidth,NewHeight
Response.BinaryWrite Image.Image
Set Image = Nothing
%>

Hvis jeg har koden i en seperat fil virker det fint, men hvis jeg paster samme kode der hvor jeg gerne vil have thumbnailen i en anden fil, bliver der kun udskrevet en masse mystiske tegn.

Se hvad jeg mener på:
http://www.givenet.dk/Profil.asp?virksomhed=23

Jeg har samme kode liggende i en seperat fil på:
http://www.givenet.dk/Profil2.asp

og der virker det som sagt fint nok...det går altså et eller andet galt når det kommer i forbindelse med min Profil.asp fil.

Håber virkelig der er en der kan hjælpe mig!!

/pfp
Avatar billede coolcoder Nybegynder
17. juli 2002 - 23:13 #1
i filen "profil.asp" skal du ikke Response.BinaryWrite'e billeder.

Bruge istedet <img src="profil2.asp">
Avatar billede eagleeye Praktikant
17. juli 2002 - 23:46 #2
du kan prøve med denne linie:
Response.ContentType = "image/jpeg"


Response.ContentType = "image/jpeg"
Response.BinaryWrite Image.Image
Set Image = Nothing


Jeg tror bare ikke det virker da den skal sætte før <html> tags...

Eller kan du lave en fil som viser billederne, du kan tage koden fra profil2.asp og kalde filen vis_billede.asp. Så kan du tilføje en querystring hvori du angiver billede navnet på det billede som skal vises.

<img src="vis_billede.asp?pic=310185-2.jpg">

I toppen af vis_billede filen indsætter du så disse to linier:
Response.ContentType="image/jpeg"
strPicture = Request.QueryString("pic")

De steder der idag står:
(Server.MapPath("Grafik/310185-2.jpg"))
Ændre su til:
(Server.MapPath("Grafik/" & srrPicture))


Man bruger Response.ContentType til at afgøre hvordan indholdet af siden skal tolkes. Hvis der er tekst på siden og du så skriver Response.BinaryWrite udskriver og tolker browseren det som sjove tegn.. Hvis du ikke har skrevet til browseren inden (som i profil2.asp) tolker browseren der som binært bille information og billedet vises.
Avatar billede pfp Nybegynder
18. juli 2002 - 10:56 #3
Tak eagleeye det virker fint.

Er der en af jer der kan hjælpe med at tilpasse følgende kode lidt:

<%
Const MINPIXELS = 350
'*** get width/height of original image
Set objImg = Server.CreateObject("AspImage.Image")
objImg.LoadImage (Server.MapPath("Grafik/310185-2.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("Grafik/310185-2.jpg"))
Image.ImageFormat = 1
Image.JPEGQuality = 100
Image.Resize NewWidth,NewHeight
Response.BinaryWrite Image.Image
Set Image = Nothing
%>

Det som var tiltænkt med koden var at den skulle formindske billedet såfremt det var større end 350 pixels, men som det er her forstørrer den også billedet hvis det er mindre end 350 pixels.
Avatar billede coolcoder Nybegynder
18. juli 2002 - 11:15 #4
<%
...

if ImageWidth > MINPIXELS then
  NewHeight = Cint(ImageHeight*MINPIXELS/ImageWidth)
  NewWidth = MINPIXELS
end if
...
%>
Avatar billede pfp Nybegynder
18. juli 2002 - 23:13 #5
Er der ikke mulighed for at man kan indstille sådan at scriptet eller komponenten godtager andre formater end .JPG? Jeg kunne godt tænke mig at det også kunne godtage .GIF og .BMP, så vidt jeg ved kan ASPImage godt håndtere disse formater?
Avatar billede eagleeye Praktikant
18. juli 2002 - 23:21 #6
Der skulle ikke være noget problem i at loade en GIF eller JPG fil med scriptet.... Jeg ved så ikke helt med denne:
Image.JPEGQuality = 100

Men det relater sig vel til outputet og ikke input filen..
Avatar billede pfp Nybegynder
18. juli 2002 - 23:25 #7
Hvis jeg bruger det som ovenstående virker det desværre kun med jpg..skal man indstille noget med contenttype?
Avatar billede coolcoder Nybegynder
18. juli 2002 - 23:26 #8
du kan roligt glemme GIF - det er et patenteret format og ASPImage kan ikke læse det - kun skrive (den rigtige hedder LZH, men ASPImage skrive i freeware-udgaven RLE)

Mht til Image.JPEGQuality = 100, så har eagleeye helt ret i at den gælder for output - ikke input.
Avatar billede pfp Nybegynder
18. juli 2002 - 23:32 #10
Okay, det er også ligemeget så nøjes jeg med JPG :-)

I skal i have tak for hjælpen begge to...i får lige Jeres point.

Mvh Peter

PS! Er i pro' ASP'er eller sådan noget??
Avatar billede pfp Nybegynder
18. juli 2002 - 23:34 #11
Okay jeg skal lige forstå Jer ret...jeg kan kun anvende JPG billeder med ASP Image komponenten??
Avatar billede coolcoder Nybegynder
18. juli 2002 - 23:39 #12
nej, ASPImage understøtter også BMP, PNG og nogle flere jeg ikke lige kan huske. Men GIF kan den ikke læse.

Og ja, jeg er pro ;)
Avatar billede eagleeye Praktikant
18. juli 2002 - 23:41 #13
how, jeg har vist sagt noget forkert for lidt siden... Du kan ikke loade GIF filer med ASPImage...

http://www.serverobjects.com/comp/Aspimage.htm
Avatar billede coolcoder Nybegynder
18. juli 2002 - 23:44 #14
eagleeye >> ikke for det, men det har jeg jo allerede fortalt ;)
Avatar billede eagleeye Praktikant
18. juli 2002 - 23:49 #15
Jeps :) men så skulle der ikke være tvivl...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester