09. september 2003 - 07:58Der er
24 kommentarer og 1 løsning
Resize med AspImage - hvorfor er det gemte billede hvidt
Jeg har lavet sub der tager et AspImage objekt, indlæser et image fra disk, resizer og gemmer igen - men det gemte, ændrede billede er hvidt? Nogen gode ideer?
Koden er her
'**************************************************************************** 'load - resize - save '**************************************************************************** Sub DoTheImage(objImage, intNewWidth, strLoadFileName, strSaveFileName, intWidth, intHeight) ' visualcoder.dk 090903 ' this sub loads an image from diskfile ' resizes the image maintaining aspect ration ' and saves the image back to disk ' parameters ' objImage - an active AspImage object ' intNewWidth - the new width to resize to ' strLoadFileName - absolute path to image file ' strSaveFileName - absolute path to image file ' intWidth - the current width ' intHeight - the current height
' new image height used in the resizing Dim intNewHeight
'set some properties 'remove pads around image objImage.PadSize = 0
'MaxX and MazY objImage.MaxX = intHeight objImage.MaxY = intWidth
'imageformat to jpg 'objImage.ImageFormat = 1
'set the save filename objImage.FileName = strSaveFileName
'load image from disk 'check for errors loading file if not(objImage.LoadImage (strFileName)) then 'write out errormsg and end response.write("<class color='red' size='5'>file not found in sub DoTheSize LoadImage - check the filename</class>") response.end end if
'do the resize
'calculate new height intNewHeight = (intNewWidth / Image.MaxX) * Image.MaxY
'resize and resample - can be slow objImage.ResizeR intNewWidth, intNewHeight
'save image back to disk 'check for errors saving file if not(objImage.SaveImage) then 'write out error msg response.write("<class color='red' size='5'>could not write file in sub DoTheImage LoadImage - check permissions on folder</class>") response.end end if
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
den normale grund til at billedet bliver hvidt er at der ikke blev læst noget billede ind i aspimage - jeg kan fra ovenstående ikke lige umiddelbart se hvor billedet bliver loadet (kan godt se linien med "'load image from disk"), men lige umiddelbart ser det ikke ud som om der kommer noget ind...
jeg kan godt se at det er det du forsøger - men hvor skulle den få strFileName fra?
så lad os antage at dette tjeck af en eller anden grund ikke virker - hvor loader du så billedet? der skal du jo have kørt objImage.LoadImage et sted - og så skal der loades et billede der også virkelig eksisterer og det gør strFileName da variablen slet ikke eksisterer med nogen værdi
Jeg kan godt se at objImage bliver dannet - men jeg kan som sagt ikke se hvor strFileName sættes og jeg kan heller ikke se nogle steder du benytter LoadImage så der også loades et billede ind... det bliver jo ikke loadet idet du kører det i din if-sætning
strFilename er et parameter - det bliver sat i kaldet til sub'en
doh - der var den - den option explicit er ikke meget værd her.
jeg har en option explicit i toppen af den includefil hvor min sub ligger i - den fortæller mig ikke at jeg ikke har erklæret en variabel med det navn - strFileName.
Den skal heller ikke være der den hedder strLoadFileName - jeg må indrømme at den fejl havde jeg ikke ventet ;-)
dernæst mht load af fil. Jeg skal ikke kunne som om du kan benytte det på den måde i en if-sætning så jeg skal ikke kunne sige om den er som den skal være eller ej. Men uanset om den if-statement virker eller ej så skal du så også loade billedet et sted :)
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.