Avatar billede stkol Nybegynder
25. august 2005 - 21:35 Der er 9 kommentarer og
1 løsning

ASP Image Size og Binary HJÆLP!

Hejsa

Jeg håber virkeligt at der en der kan hhjælpe mig hurtigt :-)

Jeg har i dag et script som kører 112% på ca 15 sider, som er på en server jeg har råderet over, og hvor komponenterne ASPImage og ImgSize er installeret. Men nu er jeg ved at lave et site, som skal ligge på en server hvor jeg ingen råderet har, og som "kun" har ASPImage installeret! Jeg skal derfor have nedenstående script omskrevet så det kan lave det samme men kun med ASPImage! Desuden ville det være genialt at kunne få billedet skrevet ud på siden som en binær streng, så der ikke bliver fyldt op på siden af thumbnails:

<%
Dim ImageName, DummyPic
'Create a Random Number called Random_Number

Randomize

'Set your Min and Max Values

Random_Number_Min = 2
Random_Number_Max = 99999
 
'Call the RND Command

Random_Number = Int(((Random_Number_Max-Random_Number_Min+1) * Rnd) + Random_Number_Min)

DummyPic = "../../img/nopic.jpg"

ImageName = "/prodpic/" & trim(prodrs("BILLEDFIL")) & ""
response.write ImageName
'Response.end
if Len(ImageName) < 1 then
  ImageName = DummyPic
end if

ImageName = Server.MapPath(ImageName)
response.write(ImageName)

'*** get width/height of original image
Set objImageSize = Server.CreateObject("ImgSize.Check")
objImageSize.FileName = ImageName
ImageHeight = objImageSize.Height
ImageWidth = objImageSize.Width

If ImageHeight < 1 then ImageHeight = 1 end if
If ImageWidth < 1 then ImageWidth = 1 end if 


'*** calculate aspect ratio based on MINPIXELS
If ImageHeight > ImageWidth Then
    NewWidth = Cint((ImageWidth/ImageHeight)*MINPIXELS2)
    NewHeight = MINPIXELS2
Else
    NewHeight = Cint((ImageHeight/ImageWidth)*MINPIXELS2)
    NewWidth = MINPIXELS2
End If
Set objImageSize = Nothing

'*** create thumbnail image
Set Image = Server.CreateObject("AspImage.Image")

Image.LoadImage(ImageName)

newPicFileNameOnDisk = ""
NewPicLogicalFileName = ""
NewPicLogicalFileName = "/mainsite/prodpic/small/small_" & Random_Number & ".jpg"
  newPicFileNameOnDisk = Server.MapPath(NewPicLogicalFileName)
  newPicFileNameOnDisk = trim(newPicFileNameOnDisk)
response.write(newPicFileName)

Image.FileName = newPicFileNameOnDisk
Image.ImageFormat = 1
Image.JPEGQuality = 100
Image.Resize NewWidth,NewHeight
Image.SaveImage
Set Image = Nothing

Response.Write "<img src=""" & newPicLogicalFileName & """ border=""0"">"
'wend
%>

Er der nogen der kan hjælpe mig?? Jeg har søgt vidt og bredt, men kan ikke få noget af det jeg finder til at virke, JEG ER DESPERAT :-(

/stig :-)
Avatar billede mm12010 Nybegynder
26. august 2005 - 09:05 #1
du kan oz sagtens finde height og width med AspImage:

  Set aspImg=Server.CreateObject("AspImage.Image")
  aspImg.LoadImage(ImageName)
  imgWidth=aspImg.MaxX
  imgHeight=aspImg.MaxY

og her kan du måske finde lidt yderligere inspiration:
http://activedeveloper.dk/artikler/default.asp?articleid=102
Avatar billede stkol Nybegynder
26. august 2005 - 09:13 #2
Hej mm12010

Tak for dit indlæg. Jeg vidste godt at man kan gøre det med ASPImage, mit problem er at få det implementeret i den kode som jeg havde, hvilket jeg ikke har haft held med!

/Stig :-)
Avatar billede mm12010 Nybegynder
26. august 2005 - 09:19 #3
hvad går galt?
Avatar billede stkol Nybegynder
26. august 2005 - 09:25 #4
Hele scriptet vælter, jeg har 4 gange forsøgt at lave scriptet som jeg har læst man skal men jeg har også 4 gange slettet igen for jeg kan ikke få det til at køre!!

Desuden ved jeg ikke hvordan det med Binary skal implementeres!! :-)
Avatar billede stkol Nybegynder
26. august 2005 - 09:36 #5
Jeg har i aftes, efter at jeg oprettet, desuden fundet ud af at jeg ikke har "skrive rettigheder" på sitet, hvilket vil sige at Binary Write er en nødvendighed!! :-]
Avatar billede mm12010 Nybegynder
26. august 2005 - 09:37 #6
kan du give et eksempel på hvordan din kode ser ud når den fejler, samt hvilken fejl du får?
Avatar billede stkol Nybegynder
26. august 2005 - 09:41 #7
Ja! det kan jeg, men det kræver lige at jeg skal have skrevet koden igen, jeg har slettet det jeg fik fejl med!! der vil gå lidt tid *S Kan du give mig et eksempel på hvordan jeg får ovenstående script til at skrive ud som Binary Write og ikke gemmer den lokalt??
Avatar billede mm12010 Nybegynder
26. august 2005 - 09:42 #8
ofte har man én mappe med skriveretteigheder, og når det ikke er tilfældet kan man altid få tildelt disse retteigheder til en mappe ved at kontakte webhotellet
Avatar billede mm12010 Nybegynder
26. august 2005 - 09:45 #9
jeg har aldrig prøvet den med Binary.Write men jeg kunne forestille mig at det var noget med at vende denne 180 grader:
http://www.magik.dk/da/articles/1/
Avatar billede stkol Nybegynder
28. august 2005 - 17:52 #10
Hej igen mm12010

Jeg har selv løst problemet! både med Binary Write og ImageSize hvilket jeg har gjort med følgende:

Oprettet denne tag i hoved dokumentet:

<img src="include/BinProdThumb.asp?id=<%=prodrs("id")%>" alt="<%=prodrs("VARENR")%>" border="0">

Samt oprettet følgende ASP side:

<% @LANGUAGE = VBScript %>


<!--#include file="siteCheck.asp"-->

<%

'####### ProductPic ############
'## Create db objects and SQL   
set ProductpicConn = Server.CreateObject("ADODB.Connection")
ProductpicConn.CursorLocation = 3
ProductpicConn.Open Application("ConnectString")
Set prodpicrs = Server.CreateObject("ADODB.Recordset")

ProductpicSql = "SELECT BILLEDFIL FROM VarerSQL WHERE id = " & trim(request.querystring("id")) & ";"

Set prodpicrs = ProductpicConn.Execute(ProductpicSql)

%>

<%

'Instantiate object (Server Objects ASPImage component)
Set MyImage = Server.CreateObject("AspImage.Image")

'filename of original image w/ extension
Dim strOrigImg
strOrigImg = "" & trim(prodpicrs("BILLEDFIL")) & ""

'filename of thumbnail w/ extension
Dim strThumbName
strThumbName = "" & trim(prodpicrs("BILLEDFIL")) & ""

'full path of original image
Dim strOrigImgFullPath
strOrigImgFullPath ="D:\www2\domaine.dk\web\www\mainsite\prodpic\"

'full path of generated thumbnail
Dim strThumbFullPath
strThumbFullPath = "D:\www2\domaine.dk\web\www\log\"

Dim strOriginal, strThumb, ResizedX,ResizedY

strOriginal = strOrigImgFullPath & strOrigImg
strThumb = strThumbFullPath & strThumbName

'load original image
MyImage.LoadImage strOriginal


If ImageHeight > ImageWidth Then
    ResizedX = 135
    MyImage.GetImageFileSize strOriginal, Y, X
    MyImage.MaxX = X
    MyImage.MaxY = Y
Else
    ResizedX = 135
    MyImage.GetImageFileSize strOriginal, X, Y
    MyImage.MaxX = X
    MyImage.MaxY = Y
End If


'maintain aspect ratio
ResizedY = (ResizedX / MyImage.MaxX) * MyImage.MaxY
MyImage.ResizeR ResizedX, ResizedY

MyImage.FontColor = vbBlack
MyImage.Italic = False
MyImage.Bold = False
MyImage.FontName = "Arial"
MyImage.FontSize = 9
MyImage.PadSize = 3
MyImage.AntiAliasText = True
MyImage.TextAlign = 0
MyImage.TextAngle = 0


strMessage = Session("WebSiteTitle")

MyImage.JPEGQuality = 95
ProgressiveJPEGEncoding = true


MyImage.TextOut strMessage, MyImage.X, MyImage.Y, true

'writing thumbnail directly to client
Response.BinaryWrite MyImage.Image

'Cleanup
Set MyImage = Nothing
%>


Og det kører kanont!!

Du skal have tak fordi du svarede på mit spørgsmål :-)

/Stig :-)
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