aspjpeg เป็นส่วนประกอบการประมวลผลภาพที่ทรงพลังมาก เป็นเวอร์ชันภาษาอังกฤษล้วนๆ อย่างไรก็ตาม มีเวอร์ชันฟรีและเวอร์ชันแคร็กอยู่แล้ว แต่มีบทความไม่มากนักที่แนะนำอย่างละเอียดและเชิงลึก แม้ว่าจะมีเพียงรูปภาพขนาดย่อและลายน้ำของรูปภาพเท่านั้น อาจเป็นเพราะเป็นภาษาอังกฤษล้วนๆ
ที่นี่ฉันจะพูดถึงการใช้งาน aspjpeg ขั้นสูงโดยอิงจากปัญหาเหล่านี้ เทคโนโลยีที่นี่ส่วนใหญ่ประกอบด้วย:
รูปขนาดย่อของรูปภาพ ลายน้ำของรูปภาพ เทคโนโลยีรหัสความปลอดภัย การตัดรูปภาพ การรวมรูปภาพ การสนับสนุนฐานข้อมูล การแนะนำวิธีการที่ไม่ธรรมดา และเทคโนโลยีเชิงปฏิบัติบางอย่างที่เกี่ยวข้อง
ข้อบกพร่องประการเดียวของ aspjpeg คือวิธีการส่งออกนั้นค่อนข้างง่าย ในที่นี้ เราพูดถึงวิธีการส่งออกนี้เป็นหลักซึ่งจะบันทึกการประมวลผลภาพแล้วเรียกมันว่า นอกจากนี้ ฉันขี้เกียจ ดังนั้นโค้ดบางส่วนยังคงอ้างอิงจากเอกสารต้นฉบับ และฉันจะอธิบายสิ่งที่ฉันไม่เข้าใจเป็นครั้งคราว!
สหายที่เคยศึกษา VB หรือ .net จะเข้าใจได้ทันที แปรงกำลังมา อิอิ
1. ภาพขนาดย่อ
<%
ตั้ง Jpeg = Server.CreateObject("Persits.Jpeg") เรียกส่วนประกอบ
Path = Server.MapPath("images") & "clock.jpg" เส้นทางของภาพที่จะประมวลผล
Jpeg.Open Path เปิดภาพเป็น 1/2 ของความสูงและความกว้างของภาพต้นฉบับ
Jpeg.Width = Jpeg.OriginalWidth / 2
Jpeg.Height = Jpeg.OriginalHeight / 2
บันทึกภาพ
Jpeg.Save Server.MapPath("รูปภาพ") & "clock_small.jpg"
-
<IMG SRC="images/clock_small.jpg"> ดูภาพที่ประมวลผล
2. ลายน้ำรูปภาพ
<%
ตั้ง Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open Server.MapPath("images/dodge_viper.jpg")
เริ่มเขียนข้อความ
Jpeg.Canvas.Font.Color = &000000' สีแดง
Jpeg.Canvas.Font.Family = แบบอักษร "Courier New"
Jpeg.Canvas.Font.Bold = จริงว่าจะเป็นตัวหนาหรือไม่
Jpeg.Canvas.Print 10, 10, "ลิขสิทธิ์ (c) XYZ, Inc."
พิกัดการพิมพ์ x พิกัดการพิมพ์ y ตัวอักษรที่จะพิมพ์ ต่อไปนี้คือการประมวลผลเส้นขอบของรูปภาพ
Jpeg.Canvas.Pen.Color = &H000000' สีดำ
Jpeg.Canvas.Pen.Width = ความกว้างของแปรง 2 อัน
Jpeg.Canvas.Brush.Solid = เท็จว่าจะเป็นตัวหนาหรือไม่
Jpeg.Canvas.Bar 1, 1, Jpeg.Width, Jpeg.Height
พิกัดเริ่มต้น X พิกัดเริ่มต้น Y ความยาวอินพุต ความสูงของอินพุต
Jpeg.Save Server.MapPath("images/dodge_viper_framed.jpg") บันทึก
-
3. รหัสความปลอดภัย
หลักการของรหัสความปลอดภัยคล้ายกับการเพิ่มลายน้ำ เพื่อนหลายคนถามฉันเกี่ยวกับเทคโนโลยีการเข้ารหัสโดยเฉพาะ ฉันจะจดไว้และแบ่งปันกับคุณที่นี่ คนส่วนใหญ่จะไม่บอกพวกเขา อิอิ
-
ฟังก์ชั่นสร้างรหัสความปลอดภัย www.downcodes.com
ฟังก์ชัน make_randomize(max_len,w_n) max_len สร้างความยาว, w_n: 0 อาจมีตัวอักษร, 1: ตัวเลขเท่านั้น
สุ่ม
สำหรับ intcounter=1 ถึง max_len
whatnext=int((1-0+1)*rnd+w_n)
ถ้า whatnext=0 แล้ว
บน=122
ล่าง=97
อื่น
บน=57
ล่าง=48
สิ้นสุดถ้า
strnewpass=strnewpass & chr(int((บน-ล่าง+1)*rnd)+ล่าง)
ต่อไป
make_randomize=strnewpass
ฟังก์ชั่นสิ้นสุด
%>
สร้างรูปภาพของรหัสความปลอดภัย แน่นอนคุณต้องเตรียมภาพพื้นหลังล่วงหน้า
<%random_num=make_randomize(4,1) เพื่อสร้างรหัสความปลอดภัย 4 หลัก
session("random_num")=random_num ทำไมเซสชันการโทรจึงไม่มีความหมายเลยหากไม่มีรหัสความปลอดภัยของเซสชัน ฮ่าฮ่า
Set Jpeg = Server.CreateObject("Persits.Jpeg") เรียกส่วนประกอบ
Jpeg.Open Server.MapPath("infos/random_pic/random_index.gif") เปิดภาพที่เตรียมไว้
Jpeg.Canvas.Font.Color = &H006699
Jpeg.Canvas.Font.Family = "เอเรียล แบล็ก"
Jpeg.Canvas.Font.Bold = เท็จ
Jpeg.Canvas.PrintText 0, -2, Random_num
jpeg.save Server.MapPath("infos/random_pic/random_index.bmp") บันทึก
%> <img src="infos/random_pic/random_index.bmp" border="0" align="absmiddle">
ทำมันด้วยตัวเอง อิอิ
4. การตัดภาพ
เป็นเวลานานแล้วที่คนที่ไม่รู้จัก aspjpeg คิดว่าใช้มันตัดไม่ได้
ในความเป็นจริงมีวิธีดังกล่าว
ครอบตัด x1,y1,x2,y2
ตัดพิกัด x ของมุมซ้ายบนของสี่เหลี่ยมผืนผ้า และพิกัด y ของมุมขวาล่างของสี่เหลี่ยมผืนผ้า ผมจะสาธิตด้านล่าง
ตั้ง Jpeg = Server.CreateObject("Persits.Jpeg")
เซิร์ฟเวอร์ jpeg.openMapPath("/pic/1.gif")
jpeg.width=70
Jpeg.Height = Jpeg.OriginalHeight*70 / jpeg.Originawidth
jpeg.crop 0,0,70,52 จริงๆ แล้วการเริ่มตัดคือการเอาส่วนล่างที่เกิน 52 พิกเซลออก
jpeg.save server.MapPath("/temp_pic/small_1.gif") แล้วการบันทึกล่ะ มันง่ายมาก
5. การรวมรูปภาพ
ที่นี่เราจะเพิ่มรูปภาพโลโก้ให้กับรูปภาพ dodge_viper.jpg จริงๆ แล้ว วิธีการรวมรูปภาพสามารถใช้เพื่อเพิ่มลายน้ำแบบไดนามิกได้
ตั้งค่ารูปภาพ = Server.CreateObject("Persits.Jpeg")
PhotoPath = Server.MapPath("รูปภาพ") & "dodge_viper.jpg"
ภาพถ่าย เปิด PhotoPath
ตั้งโลโก้ = Server.CreateObject("Persits.Jpeg")
LogoPath = Server.MapPath("รูปภาพ") & "clock.jpg"
Logo.Open LogoPath
Logo.Width = 70
Logo.Height = Logo.Width * Logo.OriginalHeight / Logo.OriginalWidth
Photo.DrawImage 0, 0, โลโก้
Photo.SendBinary วิธีการส่งออกของ sendBinary ใช้อยู่ที่นี่ แน่นอน คุณยังสามารถบันทึก dodge_viper.jpg ที่เปลี่ยนแปลงก่อนแล้วจึงป้อนเข้าไปได้ โดยส่วนตัวแล้วฉันไม่ชอบใช้วิธี sendBinary เนื่องจากมีแนวโน้มที่จะเกิดข้อผิดพลาดเมื่อความเร็วเครือข่ายช้า ไม่มากในเรื่องความเร็วเช่นกัน อิอิ
6. การสนับสนุนฐานข้อมูล
ฉันจะไม่ลงรายละเอียดที่นี่ จริงๆ แล้ว มันเป็นวิธีไบนารี่ ดังที่เราทุกคนทราบกันดีว่ารูปภาพสามารถจัดเก็บเป็นไฟล์ไบนารี่ได้เมื่อจัดเก็บไว้ในฐานข้อมูลเท่านั้น โค้ดจึงถูกเขียนอย่างเกียจคร้าน
7. วิธีการเพิ่มเติมในการแนะนำ
Canvas.Line(ซ้าย, บน, ขวา, ล่าง)
วาดเส้นตรง
Canvas.วงรี(ซ้าย, บน, ขวา, ล่าง)
วาดวงรี
Canvas.Circle(X, Y, รัศมี)
วาดวงกลม
Canvas.Bar(ซ้าย, บน, ขวา, ล่าง)
วาดรูปสี่เหลี่ยมผืนผ้าโดยมีโค้ดแนะนำอยู่
Canvas.Font.ShadowColor
สีเงาข้อความ
Canvas.Font.ShadowXOffset ตราบเท่าที่
การตั้งค่าพิกัด Shadow X
Canvas.Font.ShadowYOffset ตราบเท่าที่
การตั้งค่าพิกัด Y
Canvas.Font.BkMode เป็นสตริง
พื้นหลังข้อความ
ผู้เขียนบทความนี้: Yulang บทความนี้ได้รับการพิมพ์ซ้ำ และลิขสิทธิ์เป็นของผู้เขียนต้นฉบับ