/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
AspImage hjælp ønskes
Fra : Brian B. Christensen


Dato : 03-09-03 13:24

Hej.

Jeg vil gerne bruge AspImage til at lave thumbnails i mit fotogalleri
(http://www.patricia-brinch.dk/dk/foto.asp), da jeg idag laver disse
manuelt og det tager tid og thumbs fylder jo også når der er mange.

Jeg har så prøvet at test lidt med:

<%Set FS = CreateObject("Scripting.FileSystemObject")
FileName = Server.MapPath ("test.jpg")


Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage(FileName)
Image.JPEGQuality = 80
Image.resize 80, 80
Image.FileName = (FileName)
Image.SaveImage
Set Image = nothing
%>


Og det laver også en fin resize - af originalbilledet!!

Det jeg er interesseret i, er mere at resize dynamisk, sende billedet
til browseren og så videre til næste billede i loopet. Ikke noget med
at ændre det originale billede på disken.

Kan det lade sig gøre og hvordan?


Jeg ved at komponenten AspJpeg kan gøre noget ala:

<IMG SRC="sendbinary.asp?path=test.jpg"&width=80"> (Præcis hvad jeg
ønsker at kunne gøre med AspImage.

Men denne komponent har Azero desværre ikke installeret.


Mvh. Brian

 
 
Mads Graugaard Hanse~ (03-09-2003)
Kommentar
Fra : Mads Graugaard Hanse~


Dato : 03-09-03 16:33

Brian B. Christensen wrote in dk.edb.internet.webdesign.serverside.asp:
> Hej.
>
> Jeg vil gerne bruge AspImage til at lave thumbnails i mit fotogalleri
> (http://www.patricia-brinch.dk/dk/foto.asp), da jeg idag laver disse
> manuelt og det tager tid og thumbs fylder jo også når der er mange.
>
> Jeg har så prøvet at test lidt med:
>
> <%Set FS = CreateObject("Scripting.FileSystemObject")
&gt; FileName = Server.MapPath ("test.jpg")
&gt;
&gt;
&gt; Set Image = Server.CreateObject("AspImage.Image")
&gt; Image.LoadImage(FileName)
&gt; Image.JPEGQuality = 80
&gt; Image.resize 80, 80
&gt; Image.FileName = (FileName)
&gt; Image.SaveImage
&gt; Set Image = nothing
&gt; %>
>
>
> Og det laver også en fin resize - af originalbilledet!!

Jeg har lige et lille "trick" jeg fik fortalt til ASPImage.
så man kan lave en Resize der stadig holder billedets proportioner.

så undgår du at dine thumbs bliver "forvrængede".
tilgengæld vil du så ikke få helt ens thumbs, hvis ikke alle billederne
vender på samme led..
men .. here goes..

<%
Sub ResizeX (intXSize)
Dim intYSize
intYSize = (intXSize / Image.MaxX) * Image.MaxY
Image.ResizeR intXSize, intYSize
End sub
%>

den smider du ind før du kalder ASPImage komponentet, og så kalder du
den med

<% call ResizeX (80) %>

hvor tallet i paranteserne angiver bredden på de thumbs du vil ha..

eksemplet kunne se sån her ud..

<%
Sub ResizeX (intXSize)
Dim intYSize
intYSize = (intXSize / Image.MaxX) * Image.MaxY
Image.ResizeR intXSize, intYSize
end sub

<%Set FS = CreateObject("Scripting.FileSystemObject")
FileName = Server.MapPath ("test.jpg")


Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage(FileName)
Image.JPEGQuality = 80
Call ResizeX (80)
Image.FileName = (FileName)
Image.SaveImage
Set Image = nothing
%>


> Det jeg er interesseret i, er mere at resize dynamisk, sende billedet
> til browseren og så videre til næste billede i loopet. Ikke noget med
> at ændre det originale billede på disken.
>
> Kan det lade sig gøre og hvordan?

Hvad jkeg ved, skal du bruge et uploadkomponent, eller et seperat script
til at uploade..

Jeg har selv et slags "galleri", lavet til mine venner og mig selv
primært, hvor folk så kan uploade billeder og skrive tekst, kommentarer
osv.
Men til at uploade billederne bruger jeg komponenten
ASPSmartUpload


> Jeg ved at komponenten AspJpeg kan gøre noget ala:
>
> <IMG SRC="sendbinary.asp?path=test.jpg"&width=80"> (Præcis hvad jeg
> ønsker at kunne gøre med AspImage.

ASPImage kan ikke bruges til at uploade med. Der skal du som sagt ha fat
i et andet komponent

/Mads

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Brian B. Christensen (03-09-2003)
Kommentar
Fra : Brian B. Christensen


Dato : 03-09-03 17:21

>ASPImage kan ikke bruges til at uploade med. Der skal du som sagt ha fat
>i et andet komponent

Hejsa.

Det ved jeg skam godt

Jeg har et directory med mere en 1000 billeder. Der er ingen der skal
uploade noget. Der vil jeg så lave thumbs "on the fly", når billederne
vises på skærmen. Jeg har lavet paging med 30 billeder på hver skærm,
så det er ikke så mange billeder at serveren skal køre igennem pr.
skærmbillede.

Skidt med om billeder pass højde/bredde mæssigt. De er alligevel så
små, at man alligevel kun kan skimte hvad det er. Og det er også
nemmere at sætte pænt op, når alle thumbs har samme bredde/højde.

Jeg har også spurgt på activeserverpages.dk og det ser desværre ikke
ud til at jeg kan lave thumbs, uden at den gemmer en kopi på serveren.

Mvh. Brian

Andreas (03-09-2003)
Kommentar
Fra : Andreas


Dato : 03-09-03 20:52

> Jeg har også spurgt på activeserverpages.dk og det ser desværre ikke
> ud til at jeg kan lave thumbs, uden at den gemmer en kopi på serveren.

Det kan nu godt lade sig gøre.
Kald dit billede sådan :
<IMG
SRC="ShowThumbNail.asp?Path=DenFuldeSTI&File=FILnavnet&Size=65&Quality=90"
border="0">

Filen, der hedder ShowThumbNail.asp, skal indeholde følgende:

<%

'Denne fil må IKKE indeholde et output som f.eks. response.write eller andet
html!!!!
'Det er VIGTIGT... der er tale om binary output...

Dim strFuldeSti, strFilNavn, intSize, intQuality
strFuldeSti = Request("Path")
strFilNavn = Request("File")
intSize = cint(Request("Size"))
intQuality = cint(Request("Quality"))

' Response.write "strFuldeSti = " & strFuldeSti & "<br>"
' Response.write "strFilNavn = " & strFilNavn & "<br>"
' Response.write "intSize = " & intSize & "<br><br>"


If (IsNull(intSize)) OR strFuldeSti = "" OR strFilNavn = "" Then
Response.write "FEJL"
Else


Set MyImage = Server.CreateObject("AspImage.Image")


'Thumbnail-filnavnet med extension
Dim strThumbName
strThumbName = "thumb.jpg"

Dim strOriginal, strThumb, ResizedX,ResizedY
strOriginal = strFuldeSti & strFilNavn
strThumb = strFuldeSti & strThumbName

'Henter det originale billede
MyImage.LoadImage strOriginal

'Resize
ResizedX = intSize
MyImage.GetImageFileSize strOriginal, X, Y
MyImage.MaxX = X
MyImage.MaxY = Y

'Fixer størrelsen - aspect ratio
ResizedY = (ResizedX / MyImage.MaxX) * MyImage.MaxY
MyImage.ResizeR ResizedX, ResizedY

'Skriver Thumbnail direkte til klienten
'MyImage.CreateButton 1, True
MyImage.ImageFormat = 1
MyImage.JPEGQuality = intQuality
ProgressiveJPEGEncoding = true
Response.BinaryWrite MyImage.Image

'Cleanup
Set MyImage = Nothing

End If
%>

Held & Lykke


mvh.
Andreas Slot-Henriksen



Brian B. Christensen (04-09-2003)
Kommentar
Fra : Brian B. Christensen


Dato : 04-09-03 07:49

On Wed, 3 Sep 2003 21:51:59 +0200, "Andreas" <andreas.s-h@mail.dk>
wrote:

>Det kan nu godt lade sig gøre.

MANGE tak for det. Jeg vil straks afprøve det.

>Held & Lykke

Tak for det.


Mvh. Brian

Brian B. Christensen (04-09-2003)
Kommentar
Fra : Brian B. Christensen


Dato : 04-09-03 10:12

Hej Andreas.

Jeg har nu forsøgt uden held. Hvis jeg kigger lidt i din kode til
ShowThumbNail.asp, så står der bla.:


strThumbName = "thumb.jpg"

Dim strOriginal, strThumb, ResizedX,ResizedY
strOriginal = strFuldeSti & strFilNavn
strThumb = strFuldeSti & strThumbName


Hvad bliver strThumbName og strThumb brugt til?


Jeg har desuden forsøgt at lave en simpel html med følgende:

<IMG SRC="crttmb.asp">

og så har jeg ændret crttmb.asp til:

'strFuldeSti = Request("Path")
'strFilNavn = Request("File")
'intSize = cint(Request("Size"))
'intQuality = cint(Request("Quality"))

strFuldeSti = "d:\home\patriciabrincdk\www\gfx\foto\"
strFilNavn = "imm001.jpg"
intSize = 100
intQuality = 90

response

Har du nogle idér til hvad der går galt?


Mvh. Brian


Brian B. Christensen (04-09-2003)
Kommentar
Fra : Brian B. Christensen


Dato : 04-09-03 10:12

Hej Andreas.

Jeg har nu forsøgt uden held. Hvis jeg kigger lidt i din kode til
ShowThumbNail.asp, så står der bla.:


strThumbName = "thumb.jpg"

Dim strOriginal, strThumb, ResizedX,ResizedY
strOriginal = strFuldeSti & strFilNavn
strThumb = strFuldeSti & strThumbName


Hvad bliver strThumbName og strThumb brugt til?


Jeg har desuden forsøgt at lave en simpel html med følgende:

<IMG SRC="crttmb.asp">

og så har jeg ændret crttmb.asp til:

'strFuldeSti = Request("Path")
'strFilNavn = Request("File")
'intSize = cint(Request("Size"))
'intQuality = cint(Request("Quality"))

strFuldeSti = "d:\home\patriciabrincdk\www\gfx\foto\"
strFilNavn = "imm001.jpg"
intSize = 100
intQuality = 90

Har du nogle idér til hvad der går galt?


Mvh. Brian


Brian B. Christensen (04-09-2003)
Kommentar
Fra : Brian B. Christensen


Dato : 04-09-03 11:21

Yes! Så virker det.

Jeg lavede .asp filen om til dette:

<%
Dim strFuldeSti, strFilNavn, intSize, intQuality
strFuldeSti = Request("Path")
strFilNavn = Request("File")
intSize = 80
intQuality = 90

If strFuldeSti = "" OR strFilNavn = "" Then
   Response.write "FEJL"
Else
Set MyImage = Server.CreateObject("AspImage.Image")
Dim strOriginal, strThumb, ResizedX,ResizedY
strOriginal = strFuldeSti & strFilNavn
MyImage.LoadImage strOriginal
MyImage.ResizeR 80,80
MyImage.ImageFormat = 1
MyImage.JPEGQuality = intQuality
ProgressiveJPEGEncoding = true
Response.BinaryWrite MyImage.Image
Set MyImage = Nothing
End If
%>


Så jeg tænker ikke på aspect ratio, men sætter den til 80 i bredde og
højde. Så virker det som det skal.


TUSIND TAK FOR HJÆLPEN.

Mvh. Brian

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste