Avatar billede andersasp Nybegynder
27. februar 2007 - 08:29 Der er 9 kommentarer og
2 løsninger

fra aspimage til asp JPEG

Hejsa,

Jeg har et script som tager et orginalt billeder og laver 3 forskellige størrelser. 800 i længden, 400 i længden og et i 45 i længden, hvor jeg bruger asp image

Nu skal jeg dog have det lavet hvor jeg bruger asp jpeg, og jeg er lidt i tvivl hvordan jeg får det konverteret, uden at miste kvalitet??

    ImageDir = "../../../../upload/collection/"
    ImageIn=server.mappath(ImageDir) &"\"
    ImageOut=server.mappath(ImageDir&"thum") &"\"
    ImageLarge=server.mappath(ImageDir&"large") &"\"
    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 > 800 Then
        ResizedX = 800
        ResizedY = (ResizedX * Y/X)
    else
        ResizedX = X
        ResizedY = Y
    End if

    Image.Resize ResizedX, ResizedY
   
    Image.ImageFormat = 1
    Image.JPEGQuality = 100

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

'####################################   

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

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

    Image.Resize ResizedX, ResizedY
   
    Image.ImageFormat = 1
    Image.JPEGQuality = 100
   
    Image.FileName = (ImageIn & img )
    Image.SaveImage

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

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

    Image.Resize ResizedX, ResizedY
   
    Image.ImageFormat = 1
    Image.JPEGQuality = 100

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

    Set Image = nothing
    Next
    Set objFS = Nothing
Avatar billede hnteknik Novice
27. februar 2007 - 09:40 #1
Forstår jeg dig ret. Du vil have den samme funktionalitet med jpeg objectet ? Jeg kender til image objeket men har aldrig brugt jpeg objectet.
Avatar billede andersasp Nybegynder
27. februar 2007 - 09:44 #2
Ja det er det jeg gerne vil, har altid brugt image - men nu skal jeg bruge scriptet på en server hvor de ikke har det installeret - de har kun JPEG!
Avatar billede hnteknik Novice
27. februar 2007 - 09:49 #3
Du har vel været inde og kigge her:

http://www.aspjpeg.com/manual_02.html
Avatar billede andersasp Nybegynder
27. februar 2007 - 10:00 #4
Ja jeg har været derinde at kigge, men jeg er dog stadig lidt i tvivl da ja skal have lavet 3x thumbnails på en gang. Jeg vil nødig lave det sådan at kvaliteten bliver dårlig. Derfor ville jeg høre her på eksperten om der var et godt forslag.
Avatar billede hnteknik Novice
27. februar 2007 - 10:22 #5
Kan du ikke blot lave en samenligningstest og iøvrigt sammenligne med f.eks. acdsee eller photoshop.
Avatar billede andersasp Nybegynder
27. februar 2007 - 11:10 #6
Jo det prøver jeg, men det kunne jo godt være der lige var nogen med et smart kode eksempel!
Avatar billede hnteknik Novice
27. februar 2007 - 12:34 #7
jamen det er der da i det ovenstående link. Du kan hurtig flikke det sammen med dit eget script og så får du syn for sagen.
Avatar billede andersasp Nybegynder
27. februar 2007 - 14:10 #8
Ok så fik jeg det til at virke.. håber det er lavet på den bedste måde!!

if usethispicturenameI <> "" then
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open "c:\web\upload\collection\" & usethispicturenameI
L = 800
Jpeg.Width = L
Jpeg.Height = Jpeg.OriginalHeight * L / Jpeg.OriginalWidth
Jpeg.Save "c:\web\upload\collection\large\" & usethispicturenameI

Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open "c:\web\upload\collection\" & usethispicturenameI
L = 45
Jpeg.Width = L
Jpeg.Height = Jpeg.OriginalHeight * L / Jpeg.OriginalWidth
Jpeg.Save "c:\web\upload\collection\thum\" & usethispicturenameI

Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open "c:\web\upload\collection\" & usethispicturenameI
L = 400
Jpeg.Width = L
Jpeg.Height = Jpeg.OriginalHeight * L / Jpeg.OriginalWidth
Jpeg.Save "c:\web\upload\collection\" & usethispicturenameI
end if
Avatar billede hnteknik Novice
27. februar 2007 - 14:36 #9
jeg har aldrig anvendt ASPJpeg, så jeg har ikke mulighed for at efterprøve det. Virker det ?

Hvis det virker, så har du vel mulighed for at teste kvaliteten af de dannede thumbnails.

Behøver du at reassigne Jpeg for hvert billede. En gang burde være nok. Performance issue.
Avatar billede andersasp Nybegynder
28. februar 2007 - 08:44 #10
Jeg ved det faktisk ikke, men det virker da. Det må jeg lige kigge på ved lejlighed.. men tak for din hjælp:) du må jo smide et svar hvis du vil have lidt points!
Avatar billede hnteknik Novice
28. februar 2007 - 10:04 #11
Ok

prøv at udkommentere set jpeg og se om det ikke køre videre på samme object.
Måske skal så en Jpeg.close ind imellem, jeg ved det ikke.

Som det er nu, så laver serveren tre identiske objecter dog med hvert sit indhold. Lad det samme object lave hele arbejdet ;-)
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