يعد aspjpeg مكونًا قويًا جدًا لمعالجة الصور، وهو إصدار باللغة الإنجليزية النقية. ومع ذلك، هناك بالفعل إصدارات مجانية وإصدارات مكسورة، ولكن لا توجد العديد من المقالات التي تقدمها بالتفصيل والعمق. حتى لو كانت موجودة، فهي تتضمن فقط الصور المصغرة والعلامات المائية للصور. ربما لأنه باللغة الإنجليزية النقية.
سأتحدث هنا عن الاستخدام المتقدم لـ aspjpeg بناءً على هذه المشكلات. تشمل التقنيات هنا بشكل رئيسي ما يلي:
الصور المصغرة للصور، والعلامات المائية للصور، وتكنولوجيا رمز الأمان، وقطع الصور، ودمج الصور، ودعم قاعدة البيانات، وإدخال المزيد من الأساليب غير الشائعة وبعض التقنيات العملية ذات الصلة
العيب الوحيد في aspjpeg هو أن طريقة الإخراج بسيطة نسبيًا. نتحدث هنا بشكل أساسي عن طريقة الإخراج هذه التي تحفظ معالجة الصور ثم تستدعيها. بالإضافة إلى ذلك، أنا كسول، لذلك لا تزال بعض الرموز مقتبسة من المستندات الأصلية، وسأشرح أحيانًا ما لا أفهمه!
من المؤكد أن الرفاق الذين درسوا VB أو .net سوف يفهمونها في لمحة واحدة. الفرشاة قادمة. الكالينجيون.
1. الصورة المصغرة
<%
Set Jpeg = Server.CreateObject("Persits.Jpeg") يستدعي المكون
المسار = Server.MapPath("images") & "clock.jpg" مسار الصورة المراد معالجتها
يفتح Jpeg.Open Path الصورة إلى نصف ارتفاع وعرض الصورة الأصلية.
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. العلامة المائية للصورة
<%
تعيين 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)
إذا كان التالي = 0 ثم
العلوي=122
أقل = 97
آخر
العلوي = 57
أقل = 48
نهاية إذا
strnewpass=strnewpass & chr(int((upper-lower+1)*rnd)+lower)
التالي
make_randomize=strnewpass
وظيفة النهاية
%>
قم بإنشاء صورة لرمز الحماية. بالطبع تحتاج إلى إعداد صورة الخلفية مسبقًا
<%random_num=make_randomize(4,1) لإنشاء رمز أمان مكون من 4 أرقام
session("random_num")=random_num لماذا استدعاء الجلسة لا معنى له على الإطلاق بدون رمز أمان الجلسة. Haha
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 = "Arial Black"
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.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 في الواقع، يمكن أيضًا استخدام طريقة دمج الصور لإضافة علامات مائية ديناميكيًا.
تعيين الصورة = Server.CreateObject("Persits.Jpeg")
PhotoPath = Server.MapPath("images") & "dodge_viper.jpg"
الصورة. افتح برنامج PhotoPath
تعيين الشعار = Server.CreateObject("Persits.Jpeg")
LogoPath = Server.MapPath("images") & "clock.jpg"
Logo.Open LogoPath
Logo.Width = 70
Logo.Height = Logo.Width * Logo.OriginalHeight / Logo.OriginalWidth
Photo.DrawImage 0, 0, Logo
Photo.SendBinary يتم استخدام طريقة الإخراج الخاصة بـ sendBinary هنا. بالطبع، يمكنك أيضًا حفظ ملف dodge_viper.jpg الذي تم تغييره أولاً ثم إدخاله. أنا شخصياً لا أحب استخدام طريقة sendBinary لأنها عرضة للأخطاء عندما تكون سرعة الشبكة بطيئة. ليس كثيرًا من حيث السرعة أيضًا. الكالينجيون.
6. دعم قاعدة البيانات
لن أخوض في التفاصيل هنا. في الواقع، إنها الطريقة الثنائية، كما نعلم جميعًا، لا يمكن تخزين الصور إلا كملفات ثنائية عند تخزينها في قاعدة البيانات. لذلك تمت كتابة الكود بتكاسل.
7. المزيد من الطرق لتقديم
Canvas.Line (يسار، أعلى، يمين، أسفل)
رسم خط مستقيم
Canvas.Ellipse (يسار، أعلى، يمين، أسفل)
رسم القطع الناقص
لوحة قماشية (X، Y، نصف القطر)
ارسم دائرة
Canvas.Bar (يسار، أعلى، يمين، أسفل)
ارسم مستطيلاً بالرمز المُدخل عليه
Canvas.Font.ShadowColor
لون ظل النص
Canvas.Font.ShadowXOffset طالما
إعداد إحداثيات الظل X
Canvas.Font.ShadowYOffset طالما
إعداد الإحداثيات Y
Canvas.Font.BkMode كسلسلة
خلفية النص
مؤلف هذا المقال: يولانغ أعيد طبع هذا المقال، وحقوق الطبع والنشر تعود للمؤلف الأصلي.