بادئ ذي بدء ، نعلم أن الصورة الموجودة على الصفحة هي الكود التالي:
<img src = pic.gif الحدود = 0 عرض = 300 ارتفاع = 260>
SRC هو مسار الصورة ، ويتحكم الحدود في عرض الصورة ، والعرض هو طول الصورة ، والارتفاع هو ارتفاع الصورة. إن توليد مخطط ضيق هو في الواقع التكبير في الحجم الأصلي. ولكن لكي تكون تشويهًا قدر الإمكان ، سيتم تحجيم النسور. نتيجة لذلك ، أصبح طول وعرض الصورة أيضًا محورًا لمخطط الانحراف.
فيما يلي خطوة الكتابة بدون مكونات لإنشاء صورة مصغرة:
1. احصل على حجم الصورة بدون مكونات
قبل أن أتعلم ASP ، رأيت مقالًا باستخدام رمز ASCII للحصول على حجم الصورة بدون مكونات. في وقت لاحق ، جربته ووجدت أنه عند الحصول على حجم فئة JPG ، لم يتم عرضه دائمًا بشكل صحيح. الحل. في وقت لاحق ، وجدت Google مقالة قدمت حجم الصورة باستخدام Adodb.stream
استخدم adodb.stream للحصول على الفئة العامة لحجم الصورة
| ما يلي هو جزء الرمز: <٪ '/////////// GPS: احصل على حجم التحسين ////////////////////////////////// ////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// ///////////////////////////////////////////// جونز '///////////// استخدام ADODB.Stream للحصول على حجم الصورة ////////////// '///////////2 GPS فئة قاتمة أسو sub class_initialize الخاص SET ASO = createObject (adodb.stream) aso.mode = 3 aso.type = 1 ASO.Open نهاية الفرعية sub class_terminate الخاص تعيين ASO = لا شيء نهاية الفرعية الوظيفة الخاصة bin2str (صندوق) خافت أنا ، شارع لأني = 1 إلى Lenb (Bin) clow = midb (bin ، i ، 1) إذا ASCB (clow) <128 ثم str = str & chr (ASCB (clow)) آخر أنا = أنا 1 إذا كنت <= lenb (bin) ثم str = str & chr (ascw (midb (bin ، i ، 1) & clow)) إنهاء إذا التالي bin2str = str وظيفة نهاية وظيفة خاصة num2str (num ، قاعدة ، عدسة) 'GPS (2005-8-11) قاتمة RET RET = بينما (num> = قاعدة) RET = (قاعدة Mod) و RET num = (num -num mod base)/base ويند num2str = يمين (سلسلة (عدسة ، 0) و num & ret ، عدسة) وظيفة نهاية وظيفة خاصة str2num (Str ، قاعدة) 'GPS (2005-8-11) قاتمة RET RET = 0 لأني = 1 إلى لين (str) ret = ret *base cint (mid (str ، i ، 1)) التالي str2num = ret وظيفة نهاية الوظيفة الخاصة Binval (BIN) 'GPS (2002-8-11) قاتمة RET RET = 0 ل I = lenb (bin) إلى خطوة واحدة -1 RET = RET *256 ASCB (MIDB (BIN ، I ، 1)) التالي binval = ret وظيفة نهاية الوظيفة الخاصة binval2 (BIN) 'GPS (2002-8-11) قاتمة RET RET = 0 لأني = 1 إلى Lenb (Bin) RET = RET *256 ASCB (MIDB (BIN ، I ، 1)) التالي binval2 = ret وظيفة نهاية '/// فيما يلي رمز الاتصال /// وظيفة getImagesize (filespec) 'GPS (2002-8-11) قاتمة RET (3) aso.loadfromfile (filespec) bflag = aso.read (3) حدد Case Hex (Binval (BFLAG)) الحالة 4E5089: ASO.Read (15) RET (0) = PNG RET (1) = BINVAL2 (ASO.READ (2)) ASO.Read (2) RET (2) = BINVAL2 (ASO.READ (2)) القضية 464947: ASO.Read (3) ret (0) = GIF ret (1) = binval (aso.read (2)) ret (2) = binval (aso.read (2)) الحالة 535746: ASO.Read (5) bindata = aso.read (1) sconv = num2str (ASCB (bindata) ، 2 ، 8) nbits = str2num (يسار (sconv ، 5) ، 2) SCONV = منتصف (SCONV ، 6) بينما (len (sconv) <nbits*4) bindata = aso.read (1) SCONV = SCONV و NUM2STR (ASCB (bindata) ، 2 ، 8) ويند ret (0) = SWF RET (1) = int (ABS (str2num (mid (sconv ، 1*nbits 1 ، nbits) ، 2) -str2num (mid (sconv ، 0*nbits 1 ، nbits) ، 2)/20) RET (2) = int (ABS (str2num (mid (sconv ، 3*nbits 1 ، nbits) ، 2) -str2num (mid (sconv ، 2*nbits 1 ، nbits) ، 2)/20) حالة FFD8FF: يفعل do: p1 = binval (aso.read (1)): حلقة بينما p1 = 255 وليس aso.eos إذا كان P1> 191 و P1 <196 ، Do Else.Read (Binval2 (ASO.Read (2))-2) do: p1 = binval (aso.read (1)): حلقة بينما p1 <255 وليس aso.eos حلقة بينما صحيح ASO.Read (3) RET (0) = JPG RET (2) = BINVAL2 (ASO.READ (2)) RET (1) = BINVAL2 (ASO.READ (2)) حالة أخرى: إذا تركت (Bin2str (BFLAG) ، 2) = BM ثم ASO.Read (15) RET (0) = BMP ret (1) = binval (aso.read (4)) ret (2) = binval (aso.read (4)) آخر ret (0) = إنهاء إذا نهاية الاختيار RET (3) = العرض = & ret (1) والارتفاع = & ret (2) & getImagesize = ret وظيفة نهاية الطبقة النهائية ٪> |
انسخ الرمز أعلاه لإنشاء ملفات gps.asp ، بحيث تكون الفئة العامة لحجم الصورة بدون مكونات على ما يرام.
2. الآن نقوم أولاً بتصميم صفحة showimg.asp لعرض خريطة النقر والمعلومات ذات الصلة. التصميم المحدد على النحو التالي:
صورة:
تنسيق الصورة: