预览模式: 普通 | 列表

ASP不能正确获得JPG图片的尺寸

 一般情况下,用下面的函数是可以正确获得JPG(不能是JPEG)图片的像素大小的,比如1024*768PIX这样的。

ASP/Visual Basic代码
  1. '获取图片的像素大小  
  2. Class imgInfo  
  3.     dim aso  
  4.     Private Sub Class_Initialize  
  5.         set aso=CreateObject("Adodb.Stream")  
  6.         aso.Mode=3  
  7.         aso.Type=1  
  8.         aso.Open  
  9.     End Sub  
  10.     Private Sub Class_Terminate  
  11.         err.clear  
  12.         set aso=nothing  
  13.     End Sub  
  14.   
  15.     Private Function Bin2Str(Bin)  
  16.         Dim I, Str  
  17.         For I=1 to LenB(Bin)  
  18.         clow=MidB(Bin,I,1)  
  19.         If ASCB(clow)<128 Then  
  20.         Str = Str & Chr(ASCB(clow))  
  21.         else  
  22.         I=I+1  
  23.         If I <= LenB(Bin) Then Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))  
  24.         End If  
  25.         Next  
  26.         Bin2Str = Str  
  27.     End Function  
  28.   
  29.     Private Function Num2Str(num,base,lens)  
  30.     dim ret  
  31.     ret = ""  
  32.     while(num>=base)  
  33.     ret = (num mod base) & ret  
  34.     num = (num - num mod base)/base  
  35.     wend  
  36.     Num2Str = right(string(lens,"0") & num & ret,lens)  
  37.     End Function  
  38.   
  39.     Private Function Str2Num(str,base)  
  40.         dim ret  
  41.         ret = 0  
  42.         for i=1 to len(str)  
  43.         ret = ret *base + cint(mid(str,i,1))  
  44.         next  
  45.         Str2Num=ret  
  46.     End Function  
  47.   
  48.     Private Function BinVal(bin)  
  49.     dim ret  
  50.     ret = 0  
  51.     for i = lenb(bin) to 1 step -1  
  52.     ret = ret *256 + ascb(midb(bin,i,1))  
  53.     next  
  54.     BinVal=ret  
  55.     End Function  
  56.   
  57.     Private Function BinVal2(bin)  
  58.     dim ret  
  59.     ret = 0  
  60.     for i = 1 to lenb(bin)  
  61.     ret = ret *256 + ascb(midb(bin,i,1))  
  62.     next  
  63.     BinVal2=ret  
  64.     End Function  
  65.   
  66.     Private Function getImageSize(filespec,filefrom)  
  67.     dim ret(3)  
  68.     select case filefrom  
  69.         case 1  
  70.             '1为同域文件,否则为异域文件  
  71.             aso.LoadFromFile(filespec)  
  72.         case 2  
  73.             ASO.Write filespec  
  74.             ASO.Position = 0  
  75.     end select  
  76.     bFlag=ASO.Read(3)  
  77.     select case hex(binVal(bFlag))  
  78.     case "4E5089":  
  79.     aso.read(15)  
  80.     ret(0)="PNG"  
  81.     ret(1)=BinVal2(aso.read(2))  
  82.     aso.read(2)  
  83.     ret(2)=BinVal2(aso.read(2))  
  84.     case "464947":  
  85.     aso.read(3)  
  86.     ret(0)="GIF"  
  87.     ret(1)=BinVal(aso.read(2))  
  88.     ret(2)=BinVal(aso.read(2))  
  89.     case "535746":  
  90.     aso.read(5)  
  91.     binData=aso.Read(1)  
  92.     sConv=Num2Str(ascb(binData),2 ,8)  
  93.     nBits=Str2Num(left(sConv,5),2)  
  94.     sConv=mid(sConv,6)  
  95.     while(len(sConv)<nBits*4)  
  96.     binData=aso.Read(1)  
  97.     sConv=sConv&Num2Str(ascb(binData),2 ,8)  
  98.     wend  
  99.     ret(0)="SWF"  
  100.     ret(1)=int(abs(Str2Num(mid(sConv,1*nBits+1,nBits),2)-Str2Num(mid(sConv,0*nBits+1,nBits),2))/20)  
  101.     ret(2)=int(abs(Str2Num(mid(sConv,3*nBits+1,nBits),2)-Str2Num(mid(sConv,2*nBits+1,nBits),2))/20)  
  102.     case "FFD8FF":  
  103.     do  
  104.     do: p1=binVal(aso.Read(1)): loop while p1=255 and not aso.EOS  
  105.     If p1>191 and p1<196 Then exit do else aso.read(binval2(aso.Read(2))-2)  
  106.     do:p1=binVal(aso.Read(1)):loop while p1<255 and not aso.EOS  
  107.     loop while true  
  108.     aso.Read(3)  
  109.     ret(0)="JPG"  
  110.     ret(2)=binval2(aso.Read(2))  
  111.     ret(1)=binval2(aso.Read(2))  
  112.     case else:  
  113.     If left(Bin2Str(bFlag),2)="BM" Then  
  114.     aso.Read(15)  
  115.     ret(0)="BMP"  
  116.     ret(1)=binval(aso.Read(4))  
  117.     ret(2)=binval(aso.Read(4))  
  118.     else  
  119.     ret(0)=""  
  120.     End If  
  121.     end select  
  122.     ret(3)="width=""" & ret(1) &""" height=""" & ret(2) &""""  
  123.     getimagesize=ret  
  124.     End Function  
  125.   
  126.     Public Function imgW(pic_path,filefrom)  
  127.         '参数filefrom是判断文件是远程http开头的还是本地的  
  128.         '1为本地,2为远程  
  129.         select case filefrom  
  130.             case 1  
  131.                 Set fso1 = server.CreateObject("Scripting.FileSystemObject")  
  132.                 If (fso1.FileExists(pic_path)) Then  
  133.                     Set f1 = fso1.GetFile(pic_path)  
  134.                     ext=fso1.GetExtensionName(pic_path)  
  135.                     select case ext  
  136.                     case "gif","bmp","jpg","png":  
  137.                     arr=getImageSize(f1.path,1)  
  138.                     imgW = arr(1)  
  139.                     end select  
  140.                     Set f1=nothing  
  141.                 else  
  142.                     imgW = 0  
  143.                 End If  
  144.                 Set fso1=nothing  
  145.             case 2  
  146.                 Arr=GetImageSize(pic_path,2)  
  147.                 imgW = Arr(1)  
  148.         end select  
  149.     End Function  
  150.   
  151.     Public Function imgH(pic_path,filefrom)  
  152.         select  case filefrom  
  153.             case 1  
  154.                 Set fso1 = server.CreateObject("Scripting.FileSystemObject")  
  155.                 If (fso1.FileExists(pic_path)) Then  
  156.                 Set f1 = fso1.GetFile(pic_path)  
  157.                 ext=fso1.GetExtensionName(pic_path)  
  158.                 select case ext  
  159.                 case "gif","bmp","jpg","png":  
  160.                 arr=getImageSize(f1.path,1)  
  161.                 imgH = arr(2)  
  162.                 end select  
  163.                 Set f1=nothing  
  164.                 else  
  165.                 imgH = 0  
  166.                 End If  
  167.                 Set fso1=nothing  
  168.             case 2  
  169.                 Arr=getImageSize(pic_path,2)  
  170.                 imgH = Arr(2)  
  171.         end select  
  172.     End Function  
  173. End Class  

但下面这两个图片却不行,没办法获得。

图片是用iPhone 5S手机拍摄的,并在电脑上简单编辑过的。

解决的方法比较简单直接,把图片转换成PNG的,就可以了。

查看更多...

Tags: 图片尺寸 图片大小 ASP

分类:网络 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 850

取多个类别的前几条数据的SQL语句

 有一现实问题,想取某些类的前几条记录

SQL代码
  1. select * from BaikeInfo a where a.id in (select top 5 b.id from BaikeInfo b where b.Class = a.Class order by posttime descorder by Class, posttime desc  

 结果如下:

id     title    typeid posttime

3     1.3     1          3

2     1.2     1          2

6     2.3     2          6

查看更多...

Tags: 分组 查询 SQL

分类:数据 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 939

两年来读小说的感觉

 近两年来,一切都不在状态,所以无奈中,在无意间看起了小说,一般是在公交车上,或是在等公交车时。

说实在的,我从小就爱看书,从小说到杂志,从诗词到散文,都喜欢,可以说是一个伪文学爱好者。但毕业后近10年,没有看过长篇小说了,只偶尔看《读者》时的短篇小说或散文或杂记等。

记得我以前看过的小说,一般分为三大类,一是生活类的,比如《啼笑姻缘》,张爱玲文集里的小说(好像就有《色戒》吧)等等;一类是超现实类的,比如《聊斋》、《红楼梦》等,一类是武侠类的,古龙的,金镛的,梁羽生的等。看这些小说感觉比较踏实,知道什么是真的什么是假的,可以从中学到一些自认为有用的东西,或从文学的角度,或从哲理的角度,或从情感的角度。但这两年看了从网站上来的小说后,感觉如下。

一、缺少内涵

这点或许是因为我本来就不是一个深刻的人的缘故吧,所以不能从每一部作品中看出作者的写作意图,总觉得与陶冶、启发等没有关系,看了之后好像不能留下什么深刻的记忆,难道是我的记忆力出大问题了?

二、没有故事

查看更多...

Tags: 小说 感悟 色情 暴力 经典

分类:闲话 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 936

家乡见闻录

我是一个无聊的人,更是一个唠叨的人,所以才会写什么见闻录。我的目的是记录我所见闻到的,还有就是我所想的,不至于回头时感觉好像从来没有活过一般,不知道曾经有过些什么人、事、物。

8月8日出发的,回了一趟老家,感触还是挺多的。其实关于老家的事,我之前写过一篇,但因为没有及时完成,当时的很多想法随着时光的流逝都渐渐地淡了忘了,所以不成篇可能,一直没有写出来。

这次回家是因为老家建房的事,还有就是考驾照的事。

新农村建设,在老家已经小有成效,生活可以说是很不错了,从物质到精神两方面。

大概是从胡主席执政开始吧,进行三农改革,建设新农村,到现在已经非常不错了。取消了农业税,不用再交公粮与余粮,农民种地有补助,农村老人有生活补贴,相对完善的农村医保等。我不是搞三家研究的,也对政治政策比较冷淡,所以说到这些不是很在行,或许不准确正确,但大体上是这么个方向吧。给我影响最深的是老家农村还是定时定点来收生活垃圾的清洁车,类似城市里的清洁环卫做法了,怪不得村子里及周边的路上没有什么垃圾,很干净很原生态的感觉。

家乡几年前开始搞新农村改造,倡议把旧式的土瓦结构的老房子推倒再建(政策期间内政府会补助1-3万元),所以所到之处,几乎都是新建的水泥砖墙结构的小洋房小平房了。

查看更多...

Tags: 家乡 故乡 南康 新农村

分类:闲话 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1374

今天与某广告公司的业务顾问交谈,又让我了解了一种互联网模式。

百米生活以免费WIFI的模式与商铺合作,然后以这些WIFI的入口作为筹码来运营所谓的生活圈平台吸引商家广告。

百米生活是怎么做的呢?简单描述一下。

百米生活向商铺免费提供与个带无线路由的路由器,借商铺的宽带(如ADSL)流量作为信号来源,建一个信号热点,就是我们说的WIFI,然后店铺就有了WIFI功能提供给顾客用。顾客在使用这样的WIFI时一般要通过浏览器才能真正连接到网络,而在浏览器的入口,一般就会有本店铺的一个基本资料,这个基本资料也是当初百米生活用来吸引商铺使用其路由器的一个噱头,店铺以为可能通过这个来宣传自己,其实这个没有多大意义,人都到你WIFI覆盖的范围了,还需要通过网络来宣传?

当初我们还以为百米生活是想做传统的生活类门户网站,要揣测它的盈利模式。今天我才明白是怎么回事。

这是一个典型的借鸡生蛋的例子,也是羊毛出在牛身上的例子。

查看更多...

Tags: 百米生活 免费WIFI O2O 商业模式

分类:闲话 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4980

你身边有奶二代吗?

我有一个坏习惯,就是想了解任何东西,都喜欢到网上去搜索一下,以前是Google,现在是百度了。

什么叫奶二代呢?百科里没有定义,我试着描述一下吧。

奶二代是指由二奶或小三、小四等生育的后代,出自单亲家庭,非婚生子女。其父亲一般是富商或官员,但一般从户籍资料里看不到父亲的信息。

奶二代与官二代或富二代在某种程度上有些类似,实质都是非富即官的后代,背景不是一般的强大,但外表看起来与官二代富二代差别还是很大的,至少在奶二代未成年前。

半年前我搜索“奶二代”记得没有找到相关记录,让我有点小兴奋,以为可以去百度的百科里造个词条了(以我的水平要造个百度百科里没有的新词,太难了),不过很失望百度居然说了一堆官冕堂皇的理由,结果是未通过。

但今天搜索,居然有两条记录,心中有点小小的失落,感觉被人抢先了。

查看更多...

Tags: 奶二代 官二代 富二代

分类:闲话 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1203

表头固定及滚动到窗口顶部悬浮的效果

表头固定

表头固定的效果有点类似于EXCEL里表格“冻结窗格”的效果。

 

JS的代码

JavaScript代码
  1. $(window).scroll(function(){  
  2. var h_num=$(window).scrollTop();  
  3.     if(h_num>125){  
  4.         $('.tag').addClass('fixer');  
  5.     }else{  
  6.         $('.tag').removeClass('fixer');  
  7.     }  
  8. });  

CSS的代码

CSS代码
  1. .tag{width:100%;margin:0px auto;margin-bottom:10px;background:#fff;}  
  2. .fixer{ width:100%;margin:0px auto;position:fixedtop:0px;background:#fff;box-shadow:0px 0px 5px #dddddd;z-index:290000;_position:absolute;_top:e­xpression(documentElement.scrollTop+10 + "px");}  

HTML的代码

XML/HTML代码
  1. <div class="tag">这里的内容当滚动到页面窗口顶部时将会悬停</div>  

查看更多...

Tags: 固定表头 窗口顶部悬浮 浮动

分类:网络 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1278

时事杂谈见闻录

腾讯网发出《北京政府紧急呼吁向灾民捐款)的新闻之后,瞬间就N万多条骂论.
  大家看看今年他们替我们捐的款吧...
  1、2012年1月18日,中国向非盟提供6亿美元无偿援助
  2、2012年2月下旬,中国援助朝鲜6亿美元
  3、6月7日,向上合成员国提供100亿美元贷款
  4、7月17日,向菲律宾提供1.12亿美元改造供水管道
  5、7月19日,援助非洲200亿美元
  6、7月24日,号召群众为北京暴雨救灾捐款
  做为全世界最富有的政府,居然叫全国穷人捐款给富人北京市民,实在搞笑……
  北京民政局新浪微博号召全国人民捐款,结果收了20000多条“捐你妹”,10000多条“滚”,8000多条“你大爷”,6000多条“你妈逼”,最后不得已关闭了评论。 对于北京政府向民众募捐一事,有网友为表“众志成城”特撰一联,
  上联:对外援助现金减免贷款大笔一挥十分潇洒,
  下联:对内逼捐维稳推卸责任贪得无厌一等下流,
  横批:捐你妈B !
 

查看更多...

Tags: 2012 北京暴雨

分类:文摘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1034