FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Medlem
|
Har stött på stora problem när jag ska beskära en bild med ASPJpeg, det ska vara en "dynamisk" beskärning där den som laddar upp bilden får en förutbestämd storlek som den slutgiltiga bilden ska vara i men han ska själv kunna välja vilken del av bilden som ska sparas.
Jag får detta felmeddelande då jag ska beskära min bild: Microsoft VBScript runtime error '800a000d' Type mismatch: 'CLng' /crop/crop.asp, line 11 Och så här ser min kod ut på sidan där beskärningen sker(Rad 11 fet): Set Jpeg = Server.CreateObject("Persits.Jpeg") Path = Server.MapPath("images") Response.write Request.Querystring("image") FilePath = Path & "/" & Request.Querystring("image") Response.write FilePath SavePath = Path & "\test_small.jpg" Jpeg.Open FilePath x1 = CLng(Request.form ("coordX")) x2 = CLng(Request.form ("coordX")) + 90 y1 = CLng(Request.form ("coordY")) y2 = CLng(Request.form ("coordY")) + 118 Jpeg.Width = Jpeg.OriginalWidth Jpeg.Height = Jpeg.OriginalHeight 'Jpeg.Crop 20, 30, 80, 70 Jpeg.Crop y1, x1, y2, x2 Jpeg.Save SavePath Nån som kan ha en aning om vad jag gör för fel, CoordX/Y hämtar jag från ett JavaScript och skickar med i ett formulär till sidan där beskärningan ska ske. Här är scriptet och formuläret som används för att läsa in positionen på beskärningsytan. function mark() { var ref = document.getElementById('mark'); var ref2 = document.markform; ref2.coordX.value = parseInt(ref.style.left, 10) - dragObj.OffsetX; ref2.coordY.value = parseInt(ref.style.top, 10) - dragObj.OffsetY; ref2.coordW.value = parseInt(ref.style.width, 10); ref2.submit(); } </SCRIPT> <FORM name="markform" action="crop.asp?image=UF.gif" method="post"> <INPUT type="hidden" name="coordX"> <INPUT type="hidden" name="coordY"> <INPUT type="hidden" name="coordW"> <INPUT type="hidden" name="extension"> <DIV id=mark style="BORDER-RIGHT: white 1px dashed; BORDER-TOP: white 1px dashed; LEFT: 127px; BORDER-LEFT: white 1px dashed; WIDTH: 90px; BORDER-BOTTOM: white 1px dashed; POSITION: absolute; TOP: 37px; HEIGHT: 118px"> <DIV onmousedown="dragStart(event,'mark');" style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; WIDTH: 100%; BORDER-BOTTOM: black 1px solid; HEIGHT: 100%"> </DIV> </DIV> [img]images/UF.gif[/img] <input name="Submit" type="submit" value="submit"> </FORM> |
|||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Klarade millennium-buggen
|
Debugga och se vilka värden du får in via coordX.
Felet blir ju för att cLng inte kan konvertera talet, dvs det passar inte in inom ramarna för en Long. Kolla efter decimaler oxo, dvs testa att köra med cDbl och se om det fungerar. Det kan även hända att det finns nåt skräptecken med, eventuellt kör trim() odyl. Testa även: cLng(val(trim(coordX))) ...för att vara på den säkra sidan! =) Btw; du borde kunna köra cInt med tanke på att bilderna kanske inte är så stora att de kräver typen long. |
|||
![]() |
![]() |
Svara |
|
|