01. maj 2003 - 20:03Der er
11 kommentarer og 2 løsninger
komprimering af jpg-fil virker ikke
Hej
Når jeg kører nedenstående script, siger den:
størrelse: 21580 er færdigkomprimeret 0
Det var ikke meningen, den skulle i stedet havde skrevet en værdi, som er under 10000.
_________________________________________
Set FS = CreateObject("Scripting.FileSystemObject") FileName = Server.MapPath (strNavn)
Set Image = Server.CreateObject("AspImage.Image")
Set newfile = FS.GetFile(FileName)
If inStr(strNavn, ".jpg") or inStr(strNavn, ".jpeg") then do while newfile.size > 10000 response.write "<br>størrelse: " & newfile.size Image.JPEGQuality = 80 Image.FileName = (FileName) Image.SaveImage loop response.write "<br>er færdigkomprimeret " & newfile.size else sendBack("Billedet var for stort og kunne ikke gøres mindre, da der ikke er tale om en JPG-fil") end if
Set Image = nothing
_________________________________
Meningen med scriptet er, at det skal komprimere en jpg indtil filen kommer under 10kb. Kan du udbygges mit script, så det virker?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det var ikke meningen... = Det var ikke meningen, at "færdigkomprimeret" skulle havde skrevet en værdi, som er under 10000. Men den skriver fejlagtigt nul.
Her kommer lige den seneste kode - men problemstillingen er stadig den samme:
function setSize(strNavn)
Set FS = CreateObject("Scripting.FileSystemObject") FileName = Server.MapPath (strNavn)
Set Image = Server.CreateObject("AspImage.Image") Image.LoadImage(FileName) 'Er koblet fra for at teste om scriptet overhovedet kan komprimere 'Image.resize 80, 100 Image.FileName = (FileName) Image.SaveImage
Set newfile = FS.GetFile(FileName)
If inStr(strNavn, ".jpg") or inStr(strNavn, ".jpeg") then do while newfile.size > 10000 response.write "<br>størrelse: " & newfile.size Image.JPEGQuality = 80 Image.FileName = (FileName) Image.SaveImage loop response.write "<br>er færdigkomprimeret " & newfile.size else sendBack("Billedet var for stort og kunne ikke gøres mindre, da der ikke er tale om en JPG-fil") end if
jeg har også prøvet at indsætte en wait-sætning, men det virker heller ikke... hjælp!!!!
function setSize(strNavn)
Set FS = CreateObject("Scripting.FileSystemObject") FileName = Server.MapPath (strNavn)
Set Image = Server.CreateObject("AspImage.Image") Image.LoadImage(FileName) 'Er koblet fra for at teste om scriptet overhovedet kan komprimere 'Image.resize 80, 100 Image.FileName = (FileName) Image.SaveImage
Set newfile = FS.GetFile(FileName)
If inStr(strNavn, ".jpg") or inStr(strNavn, ".jpeg") then do while newfile.size > 10000 response.write "<br>størrelse: " & newfile.size Image.JPEGQuality = 80 Image.FileName = (FileName) for intloop=1 to 10000000 next Image.SaveImage for intloop=1 to 10000000 next loop response.write "<br>er færdigkomprimeret " & newfile.size else sendBack("Billedet var for stort og kunne ikke gøres mindre, da der ikke er tale om en JPG-fil") end if
Set FS = CreateObject("Scripting.FileSystemObject") FileName = Server.MapPath (strNavn)
Set Image = Server.CreateObject("AspImage.Image")
Set newfile = FS.GetFile(FileName) fsize = newfile.size
If inStr(strNavn, ".jpg") or inStr(strNavn, ".jpeg") then do while fsize > 10000 response.write "<br>størrelse: " & newfile.size Image.JPEGQuality = 80 Image.FileName = (FileName) Image.SaveImage
set newfile = nothing Set newfile = FS.GetFile(FileName) fsize = newfile.size
loop response.write "<br>er færdigkomprimeret " & fsize else sendBack("Billedet var for stort og kunne ikke gøres mindre, da der ikke er tale om en JPG-fil") end if
set newfile = nothing ' måske virker denne forsinkelse i = 0 for i = 1 to 10000 doevents loop
Set newfile = FS.GetFile(FileName) fsize = newfile.size
loop response.write "<br>er færdigkomprimeret " & fsize else sendBack("Billedet var for stort og kunne ikke gøres mindre, da der ikke er tale om en JPG-fil") end if
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.