webForumDet fria alternativet

Aspjpeg med text!

12 svar · 537 visningar · startad av paddan

paddanMedlem sedan dec. 2002299 inlägg
#1

Sitter med aspjpeg kod till mitt fotoalbum.
Scriptet är taget på aspjpeg.com och funkar bara bra att ladda upp bilder och göra en thumbnail bild till den. Men jags kulle vilja ha det så att den även skriver en text på bilden...
Har lagt in denna koden:

	Jpeg.Canvas.Font.Color = &HFF0000 ' Red
		Jpeg.Canvas.Font.Family = "Verdana"
		Jpeg.Canvas.Font.Bold = True
		Jpeg.Canvas.Font.Quality = 4 ' Antialiased
		Jpeg.Canvas.Font.BkMode = "Opaque" ' to make antialiasing work
		Jpeg.Canvas.Print 10, 572, "Copyright (c) Fam sköld."
		
		' Draw frame: black, 2-pixel width
		Jpeg.Canvas.Pen.Color = &H000000 ' Black
		Jpeg.Canvas.Pen.Width = 2
		Jpeg.Canvas.Brush.Solid = False ' or a solid bar would be drawn
		Jpeg.Canvas.DrawBar 1, 1, Jpeg.Width, Jpeg.Height

Men det vill inte fungera...!
Har jag lagt den fel eller??
Här är hela koden:

<%
' Create an instance of AspUpload object
Set Upload = Server.CreateObject("Persits.Upload")
' Compute path to save uploaded files to
Path = Server.MapPath("/blog/test/foto/")

' Capture uploaded file. Return the number of files uploaded
Count = Upload.Save(Path)

If Count = 0 Then
  Response.Write "No images selected."
  Response.End
Else
  ' Obtain File object representing uploaded file
  Set File = Upload.Files(1)

  ' Is this a valid image file?
  If File.ImageType <> "UNKNOWN" Then

    ' Create instance of AspJpeg object
    Set jpeg = Server.CreateObject("Persits.Jpeg")

    ' Open uploaded file
    jpeg.Open( File.Path )
    
    ' Draw text
		Jpeg.Canvas.Font.Color = &HFF0000 ' Red
		Jpeg.Canvas.Font.Family = "Verdana"
		Jpeg.Canvas.Font.Bold = True
		Jpeg.Canvas.Font.Quality = 4 ' Antialiased
		Jpeg.Canvas.Font.BkMode = "Opaque" ' to make antialiasing work
		Jpeg.Canvas.Print 10, 572, "Copyright (c) Fam sköld."
		
		' Draw frame: black, 2-pixel width
		Jpeg.Canvas.Pen.Color = &H000000 ' Black
		Jpeg.Canvas.Pen.Width = 2
		Jpeg.Canvas.Brush.Solid = False ' or a solid bar would be drawn
		Jpeg.Canvas.DrawBar 1, 1, Jpeg.Width, Jpeg.Height

    

    ' Resize image 
   	Jpeg.PreserveAspectRatio = True

	'Minska bilden med maxbredd 50px
	Jpeg.Width = 70

    SavePath = Path & "\small_" & File.ExtractFileName

    ' AspJpeg always generates thumbnails in JPEG format.
    ' If the original file was not a JPEG, append .JPG ext.
    If UCase(Right(SavePath, 3)) <> "JPG" Then
      SavePath = SavePath & ".jpg"
    End If

    jpeg.Save SavePath

    ' Save both images in the database along with description.
    strConnect = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("test.mdb")

    Set rs = Server.CreateObject("adodb.recordset")
    rs.Open "images", strConnect, 1, 3
    rs.AddNew

    ' Use File.Binary to access binary data of uploaded file.
    rs("original_image").Value = File.Binary
    Set ThumbFile = Upload.OpenFile(SavePath)
    rs("thumbnail").Value = ThumbFile.Binary
    rs("description") = Upload.Form("Description")
    rs.Update
    rs.Close
    Set rs = Nothing

    Response.Write "Success!"
  Else
    Response.Write "This is not a valid image."
    Response.End
  End If
End If
%>

Och en sak till...när jag laddar upp bilden så verkar kvaliteten på bilden försämras...kan man ställa in dte på något vis??

Mvh Martin!

MelittaMedlem sedan sep. 2003448 inlägg
#2

Är du säker på att alla bilder är över 572px höga?

r/ du lägger ju texten på småbilderna nu så då är det klart att det inte funkar, du lär lägga den på dom stora bilderna i sånnafall

paddanMedlem sedan dec. 2002299 inlägg
#3

oki...men vart ska jag lägga koden..trodde jag la koden rätt...!

paddanMedlem sedan dec. 2002299 inlägg
#4

såg dte nu att dt är thumbnailen som får den koden..!

paddanMedlem sedan dec. 2002299 inlägg
#5

får det inte att funka....!

MelittaMedlem sedan sep. 2003448 inlägg
#6

Jag vet inte riktigt vad du vill göra, att lägga bilder i en databas är sällan så lyckat eftersom att databaserna gärna blir brutalt stora..
Om jag va dig så skulle jag bara köra på att när man laddar upp en bild så kör man en resize om man vill ha den i ett mindre format, sedan gör man thumbsen dynamiskt vilket är så mycket enklare.

paddanMedlem sedan dec. 2002299 inlägg
#7

oki...!jag är med dig..:!
jag hade inte tänkt att köra databas sen...kör det bara nu för att ha lite koll på ad som laddas upp...!
Men jag skulle gärna vilja ha text på den...hur gör man det??
Mvh Martin!

paddanMedlem sedan dec. 2002299 inlägg
#8

Det jag vill göra är:
Man ska ladda upp bilden, på bilden ska det läggas en text...
Också vill jag att kvaliteten inte ska drabbas...

Hur ser koden ut för det...
Just nu laddas den upp med aspupload och sedan öppnar man jo den just uppladdade bilden igen och lägger till text och resizar den och sparar den som small_filnamn.jpg

paddanMedlem sedan dec. 2002299 inlägg
#9

Som jag sa innan så sparas den först med aspuplaod och sedan öppnar man den igen för att göra en mindre bild...
Om öppna den igen utan resiza den direkt...hur skriver man då??

MelittaMedlem sedan sep. 2003448 inlägg
#10
<%
function strRandom(antal)
	random = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,Y,V,W,Z," & _
				 "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,y,v,w,z," & _
				 "1,2,3,4,5,6,7,8,9,0," & _
				 "_,-"
	
	arrRandomThis = split(random,",")
	Randomize Timer
	for i = 1 to int(antal)
		Randomize Timer
		intStart = int(Rnd*((ubound(arrRandomThis)-1)/10)*10) + 1
		makeStr = makeStr & arrRandomThis(intStart)
	next
	strRandom = makeStr
end function

	Set Upload = Server.CreateObject("Persits.Upload")
	Upload.Save server.MapPath(".")
	Set Jpeg = Server.CreateObject("Persits.Jpeg")
	For Each File in Upload.Files   
	strNow = strRandom(5)
	if round(file.size/1024) > 1024 then
		file.delete
		response.write "Filen får inte vara större än 1mb"
		response.End()
	end if
	if instr("jpg|gif",lcase(right(File.FileName,3))) = 0 then 
			file.delete
			response.write "Bara jpg eller gif."
			response.End()
	end if
		Jpeg.Open File.Path
		
		img_width = 640
		
		if jpeg.OriginalWidth > img_width or jpeg.OriginalHeight > img_width then
			if jpeg.OriginalWidth > jpeg.OriginalHeight then
				jpeg.Width = img_width
				jpeg.Height = jpeg.OriginalHeight * jpeg.Width / jpeg.OriginalWidth
			else
				jpeg.Height = img_width
				jpeg.Width = jpeg.OriginalWidth * jpeg.Height / jpeg.OriginalHeight
			end if
		Jpeg.Sharpen 1, 105
		end if
		
		filNamn = strNow & "_" & lcase(File.FileName)
		strSave = "uppladdat/" & filNamn
						
						jpeg.Canvas.Font.Color = &Hffffff
						jpeg.Canvas.Font.Family = "Arial"
						jpeg.Canvas.Font.Bold = False
						jpeg.Canvas.Font.Size =12
						jpeg.Canvas.Print 10,jpeg.Height-20, "© 2005 " & strNamn
			
		
		Jpeg.Save server.MapPath(strSave)
		File.delete
	next
%>

Typ nått sånt, men nu sparas inga småbilder utan dom får man göra dynamiskt i fotoalbumet eller vad det nu är man ska ha det till :)

paddanMedlem sedan dec. 2002299 inlägg
#11

function strRandom(antal)
random = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,Y,V,W,Z," & _
"a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,y,v,w,z," & _
"1,2,3,4,5,6,7,8,9,0," & _
"_,-"

arrRandomThis = split(random,",")
Randomize Timer
for i = 1 to int(antal)
Randomize Timer
intStart = int(Rnd*((ubound(arrRandomThis)-1)/10)*10) + 1
makeStr = makeStr & arrRandomThis(intStart)
next
strRandom = makeStr
end function

Vad gör denna koden??

MelittaMedlem sedan sep. 2003448 inlägg
#12

eftersom du antagligen laddar upp alla bilder i samma mapp så genererar den en slumpad slinga för att inte två filnamn ska vara samma

paddanMedlem sedan dec. 2002299 inlägg
#13

oki..kom på det nu...!
Tack så hemst mycket för all hjälp...det blev precis osm jag vill ha det!
Mvh Martin!

134 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)