Avatar billede vvsnamnam Nybegynder
24. februar 2004 - 08:47 Der er 11 kommentarer og
1 løsning

resize billede asp

Jeg har lavet en auktion hvori man selv kan sætte vare til auktion og tilføje et billede til denne. Det er såmen også fint, fint. Problemet opstår når jeg på auktionsoversigts side viser en række auktioner med de tilhørende billeder fra hver af de enkelte auktion, hvor hver af billederne vises i en højde på 49 pixels, så tager siden alt for lang tid at loade, forbi de billeder jeg viser bare bliver vist i et mindre "vindue" og ikke rent byte mæssigt bliver mindre. Det jeg mangler er noget kode der kan resize billedet så det rent fyskisk bliver mindre og derfor fylder mindre byte mæssigt.

Billederne ligge en en access database og hente vha. en get8.asp side som ser sådan her ud:


<%
  'Step 1: Read in ID from querystring in file get3.asp
  Dim aucID
  aucID = Request.QueryString("aucID")
  'Step 2: select picture from ms access
  Dim Conn, RS, SQL
  SQL = "SELECT filedata FROM tblQAAuctions WHERE aucID = " & aucID
  'step 3: make a dbase connection
  Set Conn = Server.CreateObject("ADODB.Connection")
  'ms access dsnless
  Conn.Open "DBQ=" & Server.Mappath("Data/vvsauktionen.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
  Set RS = Server.CreateObject("ADODB.Recordset")
  RS.Open SQL, Conn
    'Step 4: Set the ContentType to image/jpg
  Response.ContentType = "image/jpg"
  'Step 5: Use Response.BinaryWrite to output the image
  Response.BinaryWrite RS("filedata")
  'Clean up...
  RS.Close
  Set RS = Nothing
  Conn.Close
  Set Conn = Nothing
%>


Jeg har kikket på -  Set Image = Server.CreateObject("AspImage.Image") - men jeg kan ikke hitte ud af det!!??!!
Avatar billede hnteknik Novice
24. februar 2004 - 09:36 #1
Avatar billede vvsnamnam Nybegynder
24. februar 2004 - 10:58 #2
Hey, ja jeg har faktisk lige den samme kode og jeg har siddet og rodet med det...men jeg kan ikke finde ud af at få loadet billedet fra min database; (Image.LoadImage Request.ServerVariables(???)

kan du hjælpe?!?!
Avatar billede hnteknik Novice
24. februar 2004 - 13:13 #3
Mit bedste råd er, at lade være med at gemme billeder i Access, men kun en reference til billeder ( stien).
Gem billederne på serveren
Avatar billede hnteknik Novice
24. februar 2004 - 13:17 #4
men hvis du virkelig vil det - så henter du vel billedet som et objekt obj = rs("filedata2) og kan vel paste det ind
Image.LoadImage =obj
Avatar billede hnteknik Novice
24. februar 2004 - 13:21 #5
Det kan godt være at loadingen fra et andet objekt hedder

.LoadBlob obj, 1
Avatar billede vvsnamnam Nybegynder
26. februar 2004 - 13:52 #6
hey hnteknik,

Jeg vil lytte til dit råd og uploade billede til en mappe....men nu har jeg forsøgt men kan ikke finde ud af det.

jeg bruger følgende kode til at upload min form + billede med


Sub InsertAd


'begin upload process
Uploader.Upload()


    Dim lUserID,RS,idays,UserID,Con,Cstring,sql,MYMESSAGE,i,j
           
            CString = "DBQ=" & Server.Mappath("Data/vvsauktionen.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
            Set CON = server.CreateObject("adodb.connection")
            Con.open Cstring
            Set RS = Server.CreateObject("ADODB.Recordset")
            SQL= "SELECT  *  from tblQAAuctions"
            RS.Open SQL,con,1,2
           
            iDays        = uploader.form("Days")
              UserID        = uploader.form("UserID")
            ' Response.Write iDays
            RS.AddNew
           
            RS("aucEnded")    = "N"
            RS("aucEmailsSent")    = "N"
            'RS("filename")    = File.FileName
            'RS("filesize")      = File.FileSize
            'RS("contenttype") = File.ContentType
            RS("aucItemOwner")    = UserID
            RS("aucImageURL")    = Uploader.Form("aucImageURL")
            RS("aucItemTitle")    = Uploader.Form("aucItemTitle")
            'RS("aucCategoryID")    = 0
            RS("aucCategoryID")    = Uploader.Form("aucCategoryID")
            'RS("aucStartingBid")    = 0
            RS("aucStartingBid")    = Uploader.Form("aucStartingBid")
            'RS("aucMinimumIncrement")    = 0
            RS("aucMinimumIncrement")    = Uploader.Form("aucMinimumIncrement")
            RS("aucCurrentBid")    = 0
            RS("aucDescription")    = Uploader.Form("aucDescription")
            RS("aucCurrentBidder")    = 0
            RS("aucAvailDate")    = NOW
            'RS("aucCloseDate")    = NOW
            RS("aucCloseDate")    = NOW+iDays
            'RS("aucCloseDate")    = DateAdd("d", iDays, NOW)
            For Each File In Uploader.Files.Items
           
           
            RS("filesize")      = File.FileSize
            RS("filename")    = File.FileName
            RS("ContentType")    = File.ContentType
           
            File.SaveToDatabase RS("filedata")
           
            ' Commit the changes and close
            next
           
           
           
           
            RS.Update
            lAucID = RS("aucid")
            RS.Close
   
   
   
   
    Response.Write "<BR>" & gsAuctionTextOpen & GLS_SuccessfulPost & "<BR>"
    Response.Write GLS_PostView & "<A HREF=""QAViewItem.asp?ItemID=" & lAucID & """>" & gsAucURL  & "QAViewItem.asp?ItemID=" & lAucID & "</A>" & gsAuctionTextClose &"<BR><BR>"
        ' Output the file details to the browser
'here I added a redirect to the display page
'response.write "Uploading file: " & File.FileName & "<br>"
response.flush
'process logic here, for testing
for i = 0 to 100000
    for j = 0 to 20
 
next
next

response.flush

end sub
Avatar billede vvsnamnam Nybegynder
26. februar 2004 - 15:30 #7
hey nå nu har jeg fundet ud af det ...

Jeg bruger File.SaveToDisk server.mappath("/data/images") ...

nå men jeg vender nok lige tilbage med det der resize halløj!!!
Avatar billede vvsnamnam Nybegynder
15. marts 2004 - 14:13 #8
Hey igen hnteknik.... nu er jeg ved at se på din imageresize...og jeg kan ikke helt få det til at virke....


Jeg har prøvet med denne kode

***************** thumbnail2.asp****

<% FileName=request.querystring("FileName")
size=Cint(request.querystring("size"))
Response.ContentType = "image/jpeg"
'*** get width/height of original image
Set Image = Server.CreateObject("AspImage.Image")

Image.LoadImage Request.ServerVariables("http://www.vvsauktionen.dk/") & "images\" & FileName
Image.FileName = Server.MapPath("images/mountain1_small.jpg")


ImageHeight = Image.MaxY
ImageWidth = Image.MaxX
Image.CreateButton 5,true
Image.ImageFormat = 1
Image.JPEGQuality = 80

if ImageHeight > size then
NewHeight = Cint(ImageHeight*size/ImageWidth)
NewWidth = size
Image.ResizeR NewWidth,NewHeight
end if
Response.BinaryWrite Image.Image
Set Image = Nothing
%>

og når jeg så prøver med dette her - http://www.vvsauktionen.dk/thumbnail2.asp?Filename=rs2100.jpg&size=49


så kommer der denne fejl:
<font face="Arial" size=2>
<p>ASPImage.Image</font> <font face="Arial" size=2>error '8000ffff'</font>
<p>
<font face="Arial" size=2>Bitmap image is not valid</font>
<p>
<font face="Arial" size=2>/thumbnail2.asp</font><font face="Arial" size=2>, line 22</font>


Jeg har også prøvet denne her kode ***********thumbnail.asp****


<% FileName=request.querystring("FileName")
size=Cint(request.querystring("size"))
Response.ContentType = "image/jpeg"
'*** get width/height of original image
Set Image = Server.CreateObject("AspImage.Image")


Image.FileName = Server.MapPath("images/mountain1_small.jpg")
Image.LoadImage(Server.MapPath("images/" & FileName))

ImageHeight = Image.MaxY
ImageWidth = Image.MaxX
Image.CreateButton 5,true
Image.ImageFormat = 1
Image.JPEGQuality = 80

if ImageHeight > size then
NewHeight = Cint(ImageHeight*size/ImageWidth)
NewWidth = size
Image.ResizeR NewWidth,NewHeight
end if
Response.BinaryWrite Image.Image
Set Image = Nothing
%>

og når jeg så prøver med dette her - http://www.vvsauktionen.dk/thumbnail.asp?Filename=rs2100.jpg&size=49


så vises mit billede fint ...men højden og breden er den samme - 49

hvad gør jeg ?
Avatar billede vvsnamnam Nybegynder
15. marts 2004 - 14:53 #9
nå nu har jeg fundet ..næsten..ud af det .Det jeg mangler er at den målfaste størelse på man sætter billede til(49) skal være højden på billede istedet for breden! se her http://www.vvsauktionen.dk/QAViewAuctions_r.asp?catID=1
Avatar billede vvsnamnam Nybegynder
15. marts 2004 - 15:00 #10
ja..... så har jeg selv fundet ud!
Avatar billede vvsnamnam Nybegynder
15. marts 2004 - 15:02 #11
nå men du skal vel have lidt point for linket!
Avatar billede hnteknik Novice
15. marts 2004 - 18:05 #12
Hi igen tak. Jeg har været lidt fraværende. Faktisk 7 fede solrige dage i Norge. O g er nu ved at komme mig over den efterfølgende forkølelse.

Det med H/W - du skal blot bytte om på H og W

if ImageHeight> size then
NewWidth = Cint(ImageWidth*size/ImageHeight)
NewHeight = size
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