คุณได้ลองใช้ .net เพื่อประมวลผลภาพแล้วหรือยัง? ในโครงการล่าสุดที่บริษัทดำเนินการ มีรูปภาพสินค้าจำนวนมากถูกเก็บไว้ในฐานข้อมูล แต่ไม่มีข้อมูลลิขสิทธิ์ในขณะนั้น ลูกค้าต้องการให้รูปภาพทั้งหมดมีป้ายกำกับชื่อบริษัทหรือไม่ ในเวลานี้ควรทำอย่างไร?
แม้ว่าฉันจะยังเป็นมือใหม่ แต่ก็ยังมีวิธีแก้ไขปัญหานี้มากมาย โดยสรุปได้ดังนี้:
1. ใช้ซอฟต์แวร์ประมวลผลกราฟิก เช่น Photoshop เป็นต้น และใช้ฟังก์ชันการประมวลผลแบบแบตช์เพื่อให้ได้ฟังก์ชันนี้ แต่ทุก ๆ เวลาที่พนักงานป้อนข้อมูลเพิ่มหากคุณต้องการป้อนรูปภาพคุณต้องดำเนินการซึ่งลำบากมากฉันเห็นว่าพนักงานป้อนข้อมูลมักจะดีกับฉันมากและทักทายฉันด้วยรอยยิ้มทุกวัน ของเธอ? แผนนี้ถูกปฏิเสธ
2. การใช้การประมวลผลภาพที่ราบรื่นของ .net เมื่อเจ้าหน้าที่เข้าประเทศอัปโหลดรูปภาพ จะมีการเพิ่มโลโก้บริษัทโดยอัตโนมัติ จะดีกว่าไหม นี่เป็นความคิดที่ดี ในปี 2548 ก็แค่ทำตามที่คุณบอก
โดยใช้ระบบการวาดภาพ;
ใช้ System.IO;
ใช้ System. Drawing.Imaging;
AddTextToImg เป็นโมฆะส่วนตัว (ชื่อไฟล์สตริง, ข้อความสตริง)
-
ถ้า(!File.Exists(MapPath(ชื่อไฟล์)))
-
โยน FileNotFoundException ใหม่ ("ไม่มีไฟล์นี้!");
-
ถ้า (ข้อความ == string.Empty)
-
กลับ;
-
//คุณต้องกำหนดด้วยว่าประเภทไฟล์เป็นประเภทรูปภาพหรือไม่ ซึ่งจะไม่ได้อธิบายไว้ที่
นี่
บิตแมป บิตแมป = บิตแมปใหม่ (รูปภาพ, รูปภาพ.กว้าง,รูปภาพ.ความสูง);
กราฟิก g = Graphics.FromImage (บิตแมป);
float fontSize = 12.0f; // ขนาดตัวอักษร
float textWidth = text.Length*fontSize; //ความยาวของข้อความ
//กำหนดพื้นที่สี่เหลี่ยมด้านล่าง จากนั้นวาดข้อความสีดำบนพื้นหลังสีขาวในสี่เหลี่ยมผืนผ้านี้
ลอยRectX = 0;
ลอยตรง Y = 0;
float rectWidth = text.Length*(fontSize+8);
ลอยตรงความสูง = ขนาดตัวอักษร +8;
//ประกาศโดเมนสี่เหลี่ยม
TriangleF textArea = ใหม่ TriangleF(rectX,rectY,rectWidth,rectHeight);
Font Font = new Font("宋体",fontSize); //Define font
Brush whiteBrush = SolidBrush ใหม่ (Color.White); // แปรงสีขาว ใช้สำหรับวาดข้อความ
แปรง blackBrush = ใหม่ SolidBrush(Color.Black); // แปรงสีดำ วาดพื้นหลังด้วย
g.FillRectangle
(blackBrush,rectX,rectY,rectWidth,rectHeight);
MemoryStream ms = MemoryStream ใหม่ ( );
//บันทึกเป็นประเภท JPG
bitmap.Save(ms,ImageFormat.Jpeg);
//แสดงรูปภาพที่ประมวลผลแล้ว เพื่อความสะดวกในการสาธิต
การตอบสนอง.Clear();
Response.ContentType = "รูปภาพ/jpeg";
Response.BinaryWrite( ms.ToArray() );
g.ทิ้ง();
บิตแมป.ทิ้ง();
รูปภาพ.ทิ้ง();
}
การโทรนั้นง่ายมาก
AddTextToImg("me.jpg", "Xiao Zhi");
ทุกอย่างโอเค ฉันรู้สึกว่า .net นั้นทรงพลังจริงๆ สภาพแวดล้อม .Net เสร็จสมบูรณ์!