แนะนำ: วิธีเพิ่มหรือลบวันที่ในฟังก์ชัน dateAdd ใน ASP บทความนี้จะแนะนำการใช้การเพิ่มวันที่หรือการลบในฟังก์ชั่น dateadd ใน ASP ผู้ที่ต้องรู้สามารถอ้างถึงได้
1. เพิ่มลายน้ำลงในภาพคัดลอกรหัสดังนี้: www.cuoxin.com
-
dim jpeg '' '' // ประกาศตัวแปร
ตั้งค่า jpeg = server.createObject ("persit.jpeg") '' '' // การเรียกองค์ประกอบ
jpeg.open server.mappath ("aaa.jpg") '' '' // ตำแหน่งภาพต้นทาง
jpeg.canvas.font.color = & h000000 '' '' // สีแบบอักษรลายน้ำ
jpeg.canvas.font.family = "安安" '' '' // อักษรลายน้ำ
jpeg.canvas.font.size = 14 '' '' // ขนาดตัวอักษรลายน้ำ
jpeg.canvas.font.bold = false '' '' // มันเป็นตัวหนาหรือไม่? ใช้: จริง
jpeg.canvas.font.bkmode = & hfffff '' '' // สีพื้นหลังตัวอักษร
jpeg.canvas.print 10, 10, "Studio Naughty Studio ที่ไม่พ่ายแพ้
jpeg.save server.mappath ("aaa_05.jpg") '' '' // สร้างภาพใหม่ด้วยลายน้ำและบันทึกตำแหน่ง
ตั้งค่า jpeg = ไม่มีอะไร '' '' // เข้าสู่ระบบส่วนประกอบและปล่อยทรัพยากร
Response.write "<img src = aaa_05.jpg>" '' '' // แสดงภาพหลังจากลายน้ำถูกสร้างขึ้นในหน้านี้
-
2. สร้างภาพขนาดย่อ
คัดลอกรหัสดังนี้: www.cuoxin.com
-
dim jpeg '' '' // ประกาศตัวแปร
ตั้งค่า jpeg = server.createObject ("persit.jpeg") '' '' // การเรียกองค์ประกอบ
jpeg.open server.mappath ("aaa.jpg") '' '' // ตำแหน่งภาพต้นฉบับ
jpeg.width = jpeg.originalwidth/4 '' '' '// สมมติว่าความกว้างของภาพเป็นหนึ่งในสี่ของภาพต้นฉบับ
jpeg.height = jpeg.originalheight/4 '' '' // สมมติว่าความสูงของภาพเป็นหนึ่งในสี่ของภาพต้นฉบับ
jpeg.sharpen 1, 130 '' '' // ตั้งค่าเอฟเฟกต์การลับคม
jpeg.save server.mappath ("aaa_small.jpg") '' '' // สร้างตำแหน่งและชื่อรูปแบบขนาดย่อและชื่อ
ตั้งค่า jpeg = ไม่มีอะไร '' '' // เข้าสู่ระบบส่วนประกอบและปล่อยทรัพยากร
Response.write "<img src = aaa_small.jpg>" '' '' // แสดงภาพย่อที่สร้างขึ้นในหน้านี้
-
เบื้องต้นเกี่ยวกับวิธีการใช้งานขั้นสูงของส่วนประกอบ ASPJPEG
ASPJPEG เป็นองค์ประกอบการประมวลผลภาพที่ทรงพลังมากในเวอร์ชันภาษาอังกฤษบริสุทธิ์ อย่างไรก็ตามมีเวอร์ชันฟรีและเวอร์ชันที่แตก แต่มีบทความไม่มากที่ให้รายละเอียดและแนะนำในเชิงลึกกับพวกเขา แม้ว่าจะมีพวกเขาเกี่ยวข้องกับภาพขนาดย่อของภาพและลายน้ำรูปภาพเท่านั้น อาจเป็นเพราะมันเป็นภาษาอังกฤษอย่างหมดจด
ที่นี่ฉันจะพูดคุยเกี่ยวกับการใช้ ASPJPEG ขั้นสูงสำหรับปัญหาเหล่านี้ เทคโนโลยีที่นี่ส่วนใหญ่รวมถึง:
ภาพขนาดย่อ
ลายน้ำ
เทคโนโลยีรหัสความปลอดภัย
การตัดภาพ
การผสานรูปภาพ
รองรับฐานข้อมูล
วิธีการใช้งานไม่บ่อยขึ้น
และเทคโนโลยีการปฏิบัติที่เกี่ยวข้องบางอย่าง
จุดสั้น ๆ เพียงอย่างเดียวของ ASPJPEG คือวิธีการส่งออกนั้นค่อนข้างเดี่ยว ที่นี่เราส่วนใหญ่พูดถึงวิธีการส่งออกนี้ที่บันทึกภาพแล้วเรียกมัน นอกจากนี้ฉันค่อนข้างขี้เกียจดังนั้นบางรหัสยังคงอ้างถึงในเอกสารต้นฉบับและฉันจะอธิบายสิ่งที่ฉันไม่เข้าใจ!
สหายที่ศึกษา VB หรือ. NET จะเข้าใจอย่างแน่นอน แปรงมา ฮิฮิ
1. ภาพขนาดย่อ
คัดลอกรหัสดังนี้: www.cuoxin.com
-
ตั้งค่า jpeg = server.createObject ("persit.jpeg") ส่วนประกอบการโทร
path = server.mappath ("images") & "/clock.jpg" PATH Image Path ที่รอดำเนินการ
JPEG.OPEN PATH Open Picture
ความสูงและความกว้างคือ 1/2 ของภาพต้นฉบับ
jpeg.width = jpeg.originalwidth / 2
jpeg.height = jpeg.originalheight / 2
บันทึกรูปภาพ
jpeg.save server.mappath ("images") & "/clock_small.jpg"
-
<img src = "images/clock_small.jpg"> ดูรูปภาพที่ประมวลผล
2. ภาพลายน้ำ
คัดลอกรหัสดังนี้: www.cuoxin.com
-
ตั้งค่า jpeg = server.createObject ("persit.jpeg"))
jpeg.open server.mappath ("images/dodge_viper.jpg"))
เริ่มเขียน
jpeg.canvas.font.color = & h000000 '' 'สีขาว
JPEG.CANVAS.FONT.FAMILY = "Courier New" FONT
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 = false ไม่ว่าจะเป็นตัวหนา
jpeg.canvas.bar 1, 1, jpeg.width, jpeg.height
เริ่ม x พิกัดเริ่ม y พิกัดความยาวอินพุตความสูงอินพุต
jpeg.save server.mappath ("images/dodge_viper_framed.jpg") บันทึก
-
3. รหัสความปลอดภัย
หลักการของ Safe MA นั้นคล้ายคลึงกับการเพิ่มลายน้ำ เพื่อนหลายคนถามฉันเกี่ยวกับเทคนิครหัสเฉพาะดังนั้นฉันจะเขียนมันออกมาที่นี่เพื่อแบ่งปันกับคุณ ฉันจะไม่บอกพวกเขาเกี่ยวกับคนธรรมดา ฮิฮิ
คัดลอกรหัสดังนี้: www.cuoxin.com
-
ฟังก์ชั่นที่สร้างรหัสความปลอดภัย www.wuyouw.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
ฟังก์ชันสิ้นสุด
-
สร้างรูปภาพของรหัสความปลอดภัย แน่นอนคุณต้องเตรียมภาพพื้นหลังล่วงหน้า
คัดลอกรหัสดังนี้: www.cuoxin.com
<%random_num = make_randomize (4,1) สร้างรหัสความปลอดภัย 4 หลัก
เซสชั่น ("random_num") = random_num ทำไมเซสชันจึงเรียกว่า? มันไม่มีความหมายอย่างสมบูรณ์หากไม่มีรหัสความปลอดภัยของเซสชัน ฮิฮิ
ตั้งค่า jpeg = server.createObject ("persit.jpeg") ส่วนประกอบการโทร
jpeg.open server.mappath ("infos/random_pic/random_index.gif") เปิดรูปภาพที่เตรียมไว้
jpeg.canvas.font.color = & h006699
jpeg.canvas.font.family = "Arial Black"
jpeg.canvas.font.bold = false
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" allign = "absmiddle">
ทำเอง ฮิฮิ
4. การตัดรูปภาพ
คนที่ไม่รู้จัก Aspjpeg มักจะคิดว่าพวกเขาไม่สามารถใช้มันเพื่อตัดได้
มีวิธีการดังกล่าวจริง ๆ
Crop X1, Y1, X2, Y2
ตัด X- พิกัดของมุมบนซ้ายของสี่เหลี่ยมผืนผ้า, พิกัด X ของมุมล่างขวาของพิกัด y
ฉันจะให้การสาธิตด้านล่าง
ตั้งค่า jpeg = server.createObject ("persit.jpeg"))
jpeg.open server.mappath ("/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
ในความเป็นจริงวิธีการรวมภาพสามารถใช้ในการพิมพ์ลายน้ำแบบไดนามิก
คัดลอกรหัสดังนี้: www.cuoxin.com
ตั้งค่า photo = server.createObject ("Persit.jpeg")
photopath = server.mappath ("images") & "/dodge_viper.jpg"
photo.open photopath
ตั้งค่า LOGO = Server.CreateObject ("Persit.jpeg"))
logopath = server.mappath ("images") & "/clock.jpg"
โลโก้ OPEN LOGOPATH
Logo.width = 70
Logo.height = Logo.width * Logo.originalheight / Logo.originalwidth
photo.drawimage 0, 0, โลโก้
Photo.Sendbinary
ที่นี่เราใช้วิธีการส่งออกของ Sendbinary แน่นอนคุณสามารถบันทึก dodge_viper.jpg ที่เปลี่ยนแปลงไปก่อนจากนั้นป้อน โดยส่วนตัวแล้วฉันไม่ชอบใช้วิธีการส่งสัญญาณและเป็นเรื่องง่ายที่จะทำผิดพลาดเมื่อความเร็วอินเทอร์เน็ตช้า ความเร็วไม่ค่อยดีนัก ฮิฮิ
6. การสนับสนุนฐานข้อมูล
ฉันจะไม่พูดมากที่นี่ ในความเป็นจริงมันเป็นวิธีไบนารี อย่างที่เราทราบกันดีว่ารูปภาพสามารถจัดเก็บเป็นไฟล์ไบนารีเมื่อเก็บไว้ในฐานข้อมูลเท่านั้น ดังนั้นฉันขี้เกียจเขียนรหัส
7. วิธีการเพิ่มเติม
canvas.line (ซ้าย, บน, ขวา, ด้านล่าง)
วาดเส้นตรง
canvas.ellipse (ซ้าย, บน, ขวา, ด้านล่าง)
วาดวงรี
canvas.circle (x, y, radius)
วาดวงกลม
canvas.bar (ซ้าย, บน, ขวา, ด้านล่าง)
วาดรูปสี่เหลี่ยมผืนผ้าด้วยรหัส
canvas.font.shadowcolor
สีเงาข้อความ
canvas.font.shadowxoffset นาน
การตั้งค่าพิกัดเงา x
canvas.font.shadowyoffset นาน
การตั้งค่าพิกัด y
canvas.font.bkmode เป็นสตริง
พื้นหลังข้อความ
-
วันนี้ฉันจะบอกคุณเกี่ยวกับความรู้เกี่ยวกับ ASP ที่เพิ่มลายน้ำลงในรูปภาพ
ASP ต้องการส่วนประกอบในการเพิ่มลายน้ำลงในภาพ ... สิ่งที่ใช้กันทั่วไปรวมถึง Aspjpeg และ WSImage ที่พัฒนาโดยคนจีน ... อดีตฟรีเป็นเวลา 30 วัน ... หลังฟรี ... แน่นอนว่าเราต้องใช้ผลิตภัณฑ์จีน ... ฮิฮิ ...
วิธีลงทะเบียนส่วนประกอบ :
ป้อน "regsvr32 [เส้นทาง dll]" ที่พรอมต์คำสั่ง
การเพิ่มลายน้ำลงในภาพนั้นไม่มีอะไรมากไปกว่าการรับขนาดภาพจากนั้นเขียนลายน้ำลงไป ... รหัส ASP ทำหน้าที่เป็นส่วนประกอบควบคุมเท่านั้น ใช้รหัสเพื่ออธิบายทุกอย่าง
1: รับขนาดภาพ (นี่แสดงโดยค่าพิกเซลเพื่อนที่เรียน Photoshop ควรเข้าใจ)
คัดลอกรหัสดังนี้: www.cuoxin.com
-
ตั้งค่า obj = server.createObject ("wsimage.resize") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
obj.loadsoucepic server.mappath ("25.jpg") '' '' '' '' '' '' '' '' '' '' เปิดรูปภาพชื่อภาพคือ 25.jpg
obj.getsourceinfo iwidth, iheight
Response.write "ความกว้างของภาพ:" & iwidth & "<br>" - -
Response.write "ความสูงของภาพ:" & iheight & "<br>" - -
strerror = obj.errorinfo
ถ้า Strerror <> "" แล้ว
Response.write obj.errorinfo
สิ้นสุดถ้า
obj.free
ตั้งค่า obj = ไม่มีอะไร
-
2: เพิ่มลายน้ำข้อความ
คัดลอกรหัสดังนี้: www.cuoxin.com
-
ตั้งค่า obj = server.createObject ("wsimage.resize")
obj.loadsoucepic server.mappath ("25.jpg") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
obj.quality = 75
obj.txtmarkfont = "ภาษาจีนสีคลาวด์" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
obj.txtmarkbond = false '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
obj.markrotate = 0 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
obj.txtmarkheight = 25 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
obj.addtxtmark server.mappath ("txtmark.jpg"), "Take You Out", & H00FF00 &, 10, 70
strerror = obj.errorinfo '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
ถ้า Strerror <> "" แล้ว
Response.write obj.errorinfo
สิ้นสุดถ้า
obj.free
ตั้งค่า obj = ไม่มีอะไร
-
สาม: เพิ่มลายน้ำภาพ
คัดลอกรหัสดังนี้: www.cuoxin.com
-
ตั้งค่า obj = server.createObject ("wsimage.resize")
obj.loadsoucepic server.mappath ("25.jpg") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
obj.loadimgmarkpic server.mappath ("Blend.bmp")) -
obj.quality = 75
obj.addimgmark Server.mappath ("imgmark.jpg"), 315, 220, & hfffff, 70
strerror = obj.errorinfo '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
ถ้า Strerror <> "" แล้ว
Response.write obj.errorinfo
สิ้นสุดถ้า
obj.free
ตั้งค่า obj = ไม่มีอะไร
-
ในความเป็นจริงการเพิ่มลายน้ำลงในภาพนั้นง่ายมาก จากนั้นฉันกำลังพูดถึงการใช้งานหลักอีกสองรายการขององค์ประกอบ WSIMage.dll รวมทั้ง:
ครอบตัดภาพและสร้างภาพขนาดย่อของภาพ
เมื่อฉันคุ้นเคยกับมันฉันจะเพิ่มความคิดเห็นในรหัส:
ภาพครอบตัด :
คัดลอกรหัสดังนี้: www.cuoxin.com
-
ตั้งค่า obj = server.createObject ("wsimage.resize")
obj.loadsoucepic server.mappath ("25.jpg")
obj.quality = 75
obj.cropimage server.mappath ("25_crop.jpg"), 100,10,200,200 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
strerror = obj.errorinfo
ถ้า Strerror <> "" แล้ว
Response.write obj.errorinfo
สิ้นสุดถ้า
obj.free
ตั้งค่า obj = ไม่มีอะไร
-
ความคิดเห็นโดยละเอียด: Cropimage ใช้วิธีการ cropimage ของ WSIMAGE เมื่อกำหนดการสร้างภาพ 100 และ 10 เป็นจุดตัดที่มุมซ้ายบนนั่นคือ 100 พิกเซลไปทางซ้ายของภาพและ 10 พิกเซลที่ด้านบน สอง 200s สุดท้ายเป็นตัวแทนของบรอดแบนด์และความสูงและความสูง
สร้างภาพขนาดย่อ:
คัดลอกรหัสดังนี้: www.cuoxin.com
-
ตั้งค่า obj = server.createObject ("wsimage.resize")
obj.loadsoucepic server.mappath ("25.jpg") -
obj.quality = 75
obj.outputspic server.mappath ("25_s.jpg"), 0.5,0.5,3 - -
strerror = obj.errorinfo
ถ้า Strerror <> "" แล้ว
Response.write obj.errorinfo
สิ้นสุดถ้า
obj.free
ตั้งค่า obj = ไม่มีอะไร
-
รายละเอียดคำอธิบาย:
มีสี่วิธีในการส่งออกภาพขนาดย่อ :
(1) obj.outputspic server.mappath ("25_s.jpg"), 200,150,0
200 คือความกว้างของเอาต์พุตและ 150 คือความสูงของเอาท์พุท รูปแบบเอาต์พุตนี้เป็นความกว้างและความสูงของเอาต์พุตที่ถูกบังคับซึ่งอาจทำให้เกิดการเสียรูปของภาพ
(2) obj.outputspic server.mappath ("25_s.jpg"), 200,0,1
ด้วย 200 เป็นความกว้างของเอาต์พุตความสูงของเอาต์พุตจะถูกปรับสัดส่วนด้วยคอลัมน์
(3) obj.outputspic server.mappath ("25_s.jpg"), 0,200,2
ด้วยความสูงของเอาต์พุต 200 ความกว้างของเอาต์พุตจะถูกปรับขนาดด้วยคอลัมน์
(4) obj.outputspic server.mappath ("25_s.jpg"), 0.5,0.5,3
0.5 แรกหมายความว่าภาพขนาดย่อที่สร้างขึ้นคือครึ่งหนึ่งของความกว้างของภาพต้นฉบับซึ่งหมายถึงอัตราส่วนการลดความกว้าง
0.5 ที่สองหมายความว่าภาพขนาดย่อที่สร้างขึ้นนั้นมีความสูงครึ่งหนึ่งของภาพต้นฉบับซึ่งหมายถึงอัตราส่วนการลดลงสูง
การลดความกว้างและความสูงที่ลดลงอย่างต่อเนื่องหมายความว่าภาพต้นฉบับจะถูกปรับขนาดลง หากอัตราส่วนการซูมของความกว้างและความสูงมากกว่า 1 ภาพต้นฉบับจะขยายใหญ่ขึ้น
พิมพ์ซ้ำจาก: http://hi.baidu.com/miracle521/blog/item/e34191333fdc00746ac4b5f25.html
2 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
อัปโหลดรูปภาพ ASP.NET พร้อมลายน้ำ (ลายน้ำข้อความลายน้ำรูปภาพข้อความ + ลายน้ำรูปภาพ)
เพิ่มลายน้ำลงในรูปภาพ (ลายน้ำข้อความลายน้ำรูปภาพข้อความ + ลายน้ำรูปภาพ)
ภาพการทำซ้ำ:
รูปที่ 500) this.width = 500 "border = 0 <
Watermark 500) this.width = 500 "border = 0 <
หลังจากเพิ่มลายน้ำลงในภาพ (หมายเหตุมุมบนขวา + ด้านล่างโดยตรง)
500) this.width = 500 "border = 0 <
รหัส:drawimg.cs
คัดลอกรหัสดังนี้: www.cuoxin.com
ใช้ระบบ
ใช้ System.Drawing;
ใช้ System.Drawing.imaging;
ใช้ System.Drawing.Drawing2D;
ชั้นเรียนสาธารณะ drawimg
-
สตริงส่วนตัว workingDirectory = string.empty; //เส้นทาง
สตริงส่วนตัว imagename = string.empty; // ภาพที่ประมวลผล
สตริงส่วนตัว imagewater = string.empty; // ภาพลายน้ำ
สตริงส่วนตัว fontstring = string.empty; // ข้อความลายน้ำ
enum dealtype {none, waterimage, waterfont, doubledo}; // คำสั่ง enum
การจัดการส่วนตัวจัดการ;
Public Drawimg ()
-
Public String PublicwingDirectory
-
รับ
-
กลับไปทำงานไดเรกทอรี;
-
ชุด
-
WorkingDirectory = ค่า;
-
-
Public String Publicimagename
-
รับ
-
return imagename;
-
ชุด
-
imageName = value;
-
-
Public String สาธารณะ
-
รับ
-
return Imagewater;
-
Set // หากคุณตั้งค่าภาพลายน้ำนั่นหมายความว่าคุณต้องการใช้เอฟเฟกต์ภาพลายน้ำ
-
จัดการ = dealType.waterImage;
Imagewater = ค่า;
-
-
Public String Publicfontstring
-
รับ
-
ส่งคืน Fontstring;
-
Set // หากตั้งค่าข้อความลายน้ำนั่นหมายความว่าจำเป็นต้องมีเอฟเฟกต์ข้อความลายน้ำ
-
จัดการ = dealtype.waterfont;
FontString = ค่า;
-
-
โมฆะสาธารณะ dealimage ()
-
isdouble ();
สวิตช์ (จัดการ)
-
case dealtype.waterfont: writefont (); หยุดพัก;
case dealtype.waterimage: writeimg (); หยุดพัก;
case dealtype.doubledo: writefontandimg (); หยุดพัก;
-
-
ช่องว่างส่วนตัว Isdouble ()
-
if (imagewater+""! = "" && fontstring+""! = "")
-
จัดการ = dealtype.doubledo;
-
-
Void Private WriteFont ()
-
// ตั้งค่าไดเรกทอรีการทำงาน
// สตริง workingDirectory = @"c:/watermark_src/waterpic";
// กำหนดสตริงของข้อความเพื่อใช้เป็นข้อความลิขสิทธิ์
// String Copyright = "Copyright? 2002 - AP Photo/David Zalubowski";
// สร้างวัตถุรูปภาพที่มีรูปถ่ายเป็นลายน้ำ
Image imgphoto = image.fromfile (WorkingDirectory + ImageName);
int phwidth = imgphoto.width;
int phheight = imgphoto.height;
// สร้างบิตแมปขนาดของภาพถ่ายต้นฉบับ
Bitmap bmphoto = บิตแมปใหม่ (phwidth, phheight, pixelformat.format24bpprgb);
bmphoto.setResolution (imgphoto.horizontalResolution, imgphoto.verticalResolution);
// โหลดบิตแมปลงในวัตถุกราฟิก
กราฟิก grphoto = graphics.fromimage (bmphoto);
-
// ขั้นตอนที่ #1 - แทรกข้อความลิขสิทธิ์
-
// ตั้งค่าคุณภาพการแสดงผลสำหรับวัตถุกราฟิกนี้
grphoto.smoothingMode = SmoothingMode.antialias;
// วาดวัตถุรูปภาพภาพที่ขนาดดั้งเดิมไปยังวัตถุกราฟิก
grphoto.drawimage (
imgphoto, // วัตถุรูปภาพ
รูปสี่เหลี่ยมผืนผ้าใหม่ (0, 0, phwidth, phheight), // โครงสร้างสี่เหลี่ยมผืนผ้า
0, // x- พิกัดของส่วนของภาพต้นฉบับที่จะวาด
0, // y- พิกัดของส่วนของภาพต้นฉบับที่จะวาด
phwidth, // ความกว้างของส่วนของภาพต้นทางที่จะวาด
Phheight, // ความสูงของส่วนของภาพต้นฉบับที่จะวาด
graphicsunit.pixel); // หน่วยวัด
-
// เพื่อเพิ่มขนาดของข้อความลิขสิทธิ์ที่เราจะสูงสุด
// ทดสอบขนาดตัวอักษรหลายขนาดเพื่อกำหนดขนาดที่ใหญ่ที่สุดเท่าที่จะเป็นไปได้
// ฟอนต์เราสามารถใช้สำหรับความกว้างของภาพถ่าย
// กำหนดอาร์เรย์ของขนาดจุดที่คุณต้องการพิจารณาให้มากที่สุด
-
int [] sizes = new int [] {16,14,12,10,8,6,4};
FONT CRFONT = NULL;
sizef crsize = new sizef ();
// วนลูปผ่านขนาดที่กำหนดไว้ตรวจสอบความยาวของสตริงลิขสิทธิ์
// ถ้าความยาวเป็นพิกเซลน้อยกว่าความกว้างของภาพจะเลือกขนาดตัวอักษรนี้
สำหรับ (int i = 0; i <7; i ++)
-
// ตั้งค่าวัตถุฟอนต์เป็น Arial (i) pt, bold
// crfont = ตัวอักษรใหม่ ("Arial", ขนาด [i], fontstyle.bold);
crfont = ตัวอักษรใหม่ ("Arial", ขนาด [i], fontstyle.bold);
// วัดสตริงลิขสิทธิ์ในแบบอักษรนี้
crsize = grphoto.measurestring (fontstring, crfont);
ถ้า ((ushort) crsize.width <(ushort) phwidth)
หยุดพัก;
-
// เนื่องจากภาพถ่ายทั้งหมดจะมีความสูงที่แตกต่างกันกำหนดก
// ตำแหน่ง 5% จากด้านล่างของภาพ
int ypixlesfrombottom = (int) (phheight *.05);
// ตอนนี้เรามีขนาดจุดใช้ความสูงของสตริงลิขสิทธิ์
// เพื่อกำหนดพิกัด y เพื่อวาดสตริงของภาพถ่าย
float yposfrombottom = ((phheight - ypixlesfrombottom) - (crsize.height/2));
// กำหนดพิกัด X โดยการคำนวณศูนย์กลางของความกว้างของภาพ
float xcenterofimg = (phwidth/2);
// กำหนดเค้าโครงข้อความโดยการตั้งค่าการจัดตำแหน่งข้อความเป็นศูนย์กลาง
stringFormat strformat = new StringFormat ();
strformat.alignment = stringalignment.center;
// กำหนดแปรงซึ่งเป็นสีดำกึ่ง trasparent (อัลฟ่าตั้งไว้ที่ 153)
SolidBrush SemitransBrush2 = ใหม่ SolidBrush (Color.FromArgB (153, 0, 0, 0));
// วาดสตริงลิขสิทธิ์
grphoto.drawstring (fontstring, // สตริงของข้อความ
crfont, // ตัวอักษร
Semitransbrush2, // Brush
ใหม่ pointf (xcenterofimg+1, yposfrombottom+1), // ตำแหน่ง
strformat);
// กำหนดแปรงซึ่งเป็นสีขาวกึ่ง trasparent (อัลฟ่าตั้งไว้ที่ 153)
Solidbrush Semitransbrush = ใหม่ SolidBrush (Color.FromArgB (153, 255, 255, 255));
// วาดสตริงลิขสิทธิ์เป็นครั้งที่สองเพื่อสร้างเอฟเฟกต์เงา
// ตรวจสอบให้แน่ใจว่าย้ายข้อความนี้ 1 พิกเซลไปทางขวาและลง 1 พิกเซล
grphoto.drawstring (fontstring, // สตริงของข้อความ
crfont, // ตัวอักษร
Semitransbrush, // Brush
New Pointf (Xcenterofimg, yposfrombottom), // ตำแหน่ง
strformat);
imgphoto = bmphoto;
grphoto.dispose ();
// บันทึกภาพใหม่ไปยังระบบไฟล์
imgphoto.save (workingDirectory + imageName + "_finally.jpg", imageFormat.jpeg);
imgphoto.dispose ();
// การจัดตำแหน่งข้อความ
-
แบ่งปัน: วิธีแก้ปัญหาปัญหาที่อ่านไม่ออกของจีน ASP ไม่ว่าจะมีปัญหาภาษาที่อ่านไม่ออก ASP ก็ไม่มีข้อยกเว้น บทความนี้จะแนะนำวิธีการแก้ปัญหารหัสที่อ่านไม่ออกใน ASP เพื่อนที่ต้องการมันสามารถอ้างถึงมันได้