Avatar billede pumaen Nybegynder
08. januar 2003 - 16:57 Der er 8 kommentarer og
1 løsning

ASPimage resizer/ødelægger billeder!

Hej

Jeg har et script som resizer billeder der bliver uploaded med ASPimage til et bestemt biblotekt - hvilket også virker helt godt!

Problemet er dog at når jeg uploader igen, gør den alle de nuværende billeder i bibloteket enten ulæselige (de kan slet ikke vises mere).

Koden er forneden, det første billede man uploader virker perfekt den laver et billde på 250px i width og et thumbnail på 30px..  men ved anden upload går det galt! ???

Det burde være en simpel fejl - håber i kan finde dem!

-----------------------------------------------------

'--- start --
ImageDir = "../../billeder/referencer/"
ImageIn=server.mappath(ImageDir) &"\"
ImageOut=server.mappath(ImageDir&"thum") &"\"
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir))
Set objFiles = objFolder.Files
For Each Image In objFiles
    img = Image.Name
    Set Image = Server.CreateObject("AspImage.Image")
    Image.AutoSize = false

    Image.LoadImage(ImageIn& img )
    X = Image.MaxX
    Y = Image.MaxY

    If X > 30 Then
        ResizedX = 30
        ResizedY = (ResizedX * Y/X)
    End if

    Image.Resize ResizedX, ResizedY

    Image.ImageFormat = 1
    Image.JPEGQuality = 100

    Image.FileName = (ImageOut & img )
    Image.SaveImage

  ' ********* resize original billed start

    Image.LoadImage(ImageIn& img )
    X = Image.MaxX
    Y = Image.MaxY

    If X > 250 Then
        ResizedX = 250
        ResizedY = (ResizedX * Y/X)
    End if

    Image.Resize ResizedX, ResizedY

    Image.ImageFormat = 1
    Image.JPEGQuality = 100

    Image.FileName = (ImageIn & img )
    Image.SaveImage

  ' ********* resize original billed slut

    Set Image = nothing

Next
Set objFS = Nothing
'--- slut ---
%>
Avatar billede dgivoni Nybegynder
08. januar 2003 - 17:14 #1
du skal aendre til if-saetning nr. 2 til:
If X > 250 Then
        ResizedX = 250
        ResizedY = (ResizedX * Y/X)
else
        ResizedX = X
        ResizedY = Y
    End if
ellers saa har den stadig vaerdierne fra den foerste resize, hvis billedet ikke er bredere end 250 pixels
Avatar billede dgivoni Nybegynder
08. januar 2003 - 17:15 #2
det ville ikke vaere et problem hvis du byttede rundt paa de to resizes, dvs. foerst til 250 og derefter til 30. Saa ville du heller ikke skulle hente billedet ind igen og derfor oege performance lidt ogsaa...
Avatar billede pumaen Nybegynder
08. januar 2003 - 17:25 #3
Således??

Dvs således

    Image.LoadImage(ImageIn& img )
    X = Image.MaxX
    Y = Image.MaxY

    If X > 250 Then
            ResizedX = 250
            ResizedY = (ResizedX * Y/X)
    else
            ResizedX = X
            ResizedY = Y
        End if

If X > 30 Then
        ResizedX = 30
        ResizedY = (ResizedX * Y/X)
    End if

    Image.Resize ResizedX, ResizedY

    Image.ImageFormat = 1
    Image.JPEGQuality = 100

    Image.FileName = (ImageOut & img )
    Image.SaveImage
Avatar billede dgivoni Nybegynder
08. januar 2003 - 17:31 #4
ja, men du skal gemme billedet imellem og med et forskelligt navn:

Image.LoadImage(ImageIn& img )
    X = Image.MaxX
    Y = Image.MaxY

    If X > 250 Then
            ResizedX = 250
            ResizedY = (ResizedX * Y/X)
    End if
    Image.Resize ResizedX, ResizedY
    Image.ImageFormat = 1
    Image.JPEGQuality = 100

    Image.FileName = (ImageOut & img & "-stor")
    Image.SaveImage

If X > 30 Then
        ResizedX = 30
        ResizedY = (ResizedX * Y/X)
    End if

    Image.Resize ResizedX, ResizedY

    Image.FileName = (ImageOut & img & "-lille")
    Image.SaveImage
Avatar billede dgivoni Nybegynder
08. januar 2003 - 17:32 #5
jeg kan ikke helt huske om billedformatet er med i Image.Filename?
Avatar billede pumaen Nybegynder
08. januar 2003 - 17:37 #6
Nu virker det! den laver dog thumnailene helt hvide! jeg har brugt nedenstående!

-------------------------------------------------------

'--- start --
ImageDir = "../../billeder/referencer/"
ImageIn=server.mappath(ImageDir) &"\"
ImageOut=server.mappath(ImageDir&"thum") &"\"
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir))
Set objFiles = objFolder.Files
For Each Image In objFiles
    img = Image.Name
    Set Image = Server.CreateObject("AspImage.Image")
    Image.AutoSize = false

    Image.LoadImage(ImageIn& img )
    X = Image.MaxX
    Y = Image.MaxY

    If X > 250 Then
            ResizedX = 250
            ResizedY = (ResizedX * Y/X)
    End if
    Image.Resize ResizedX, ResizedY
    Image.ImageFormat = 1
    Image.JPEGQuality = 100

    Image.FileName = (ImageOut & img & "-stor")
    Image.SaveImage

If X > 30 Then
        ResizedX = 30
        ResizedY = (ResizedX * Y/X)
    End if

    Image.Resize ResizedX, ResizedY

    Image.FileName = (ImageOut & img & "-lille")
    Image.SaveImage


    Set Image = nothing

Next
Set objFS = Nothing
'--- slut ---
%>
Avatar billede dgivoni Nybegynder
08. januar 2003 - 17:40 #7
jeg kan ikke helt forstaa hvorfor, men proev at loade billedet igen lige foer nr. 2 resize bare for lige at tjekke om det virker saadan.
Avatar billede pumaen Nybegynder
08. januar 2003 - 17:46 #8
Nu virker det perfekt, velfortjente points til dig!!
Avatar billede dgivoni Nybegynder
08. januar 2003 - 18:49 #9
mange tak :-)

/David
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