Jag har testat med att göra en COM-ponent till ASP som skalar (scale) bilder i VB men ej lyckats. Finns redan en komponent som du kan använda "ASP Image" Känner bara till att den finns och lite vad man kan göra med den. Men det finns säker någon vänlig själ som kan hjälpa dig hitta den samt förklara hur man använder den. Jag har testat använda ASP Image men den funkar inte heller så bra till detta...men om någon har fått till det så är det mycket välkommet :) Hittade ett fel(Hade skrivit Image istället för Pic): Hmmm jag har snabbt testat och ej fått detta att funka än så länge...men skall ta itu med detta när jag får tid....sooon..Skala en bild
Jag har försökt att göra om width height men när man sparar ner filen så skiter den i det och tar det urspungliga formatet.
Detta skall vara till en Upload funktion i ASP som skalar om bilderna så att inte medlemmar kan lägga in stora bilder och dom blir sega och ladda.
Är det någon som har ett förslag? Eller måste man börja hacka Java för att få ut detta?
::: MrWeilandSv: Skala en bild
Problemet med att använda vb är att du bara kan spara bilder som BMP. Vilket inte är bra i internetsammanhang.
Att det blir samma bild. Gissar på att det kan beror på att om du använder en ImageBoc med strech egenskapen och försöker sprara picture egenskapen. Detta går inte efter som picture egenskapen är oförändrad. Om du ska scala om en bild och sedan spara den. Är det bättre om du använder dig av en picturebox och PaintPicture.
Här är ett exempel som visar hur du kan göra:
'Form1
Option Explicit
'Sätt följande egenskaper för formuläret:
' AutoRedraw = True
' BorderStyle = 0' None
' Caption = ""
' ControlBox = False
' MaxButton = False
' MinButton = False
Private mPicture As StdPicture
Private Sub Form_Load()
Dim PictureWidth As Single
Dim PictureHeight As Single
PictureWidth = ScaleX(mPicture.Width, vbHimetric, vbTwips)
PictureHeight = ScaleY(mPicture.Height, vbHimetric, vbTwips)
Move 0, 0, PictureWidth * 2, PictureHeight * 2
PaintPicture Pic, ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight, 0, 0, PictureWidth, PictureHeight, vbSrcCopy
Set mPicture = Image
Unload Me
End Sub
Public Function ReSize(Picture As StdPicture) As StdPicture
Set mPicture = Picture
Show vbModal
Set ReSize = mPicture
Set mPicture = Nothing
End Function
'Class1
Option Explicit
Private mForm As New Form1
Public Function ReSizeImage(ByVal Source As Variant, Optional ByVal Destination As Variant)
Dim Pic As StdPicture
Set Pic = LoadPicture(Source)
Set Pic = mForm.ReSize(Pic)
If IsMissing(Destination) Then
SavePicture Image, Source
Else
SavePicture Image, Destination
End If
End Function
Private Sub Class_Terminate()
Set mForm = Nothing
End SubSv: Skala en bild
Jag skall testa din VB lösning :)
::: MrWeilandSv: Skala en bild
'Class1
Option Explicit
Private mForm As New Form1
Public Function ReSizeImage(ByVal Source As Variant, Optional ByVal Destination As Variant)
Dim Pic As StdPicture
Set Pic = LoadPicture(Source)
Set Pic = mForm.ReSize(Pic)
If IsMissing(Destination) Then
SavePicture Pic, Source
Else
SavePicture Pic, Destination
End If
End Function
Private Sub Class_Terminate()
Set mForm = Nothing
End SubSv: Skala en bild
:: MrWeiland