账号通
    

账号  

密码  

92678

查看

152

回复
主题:[原创]图片上传自动生成不变形缩略图黄金分割修改方法~(4月7日更新-sk采集自动生成不变行小图并自动设为文章小图 [收藏主题] 本贴被认定为精华 转到:  
梦中女孩 当前离线

46

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:846 分
登录次数:49 次
注册时间:2008/3/7
最后登录:2009/9/18
梦中女孩 发表于:2008/4/6 15:12:00   | 显示全部帖子 查看该作者主题 楼主 
做在线知识付费 选科汛云开店

第一部分:科汛图片上传自动生成不变性小图

 

注意:

1、确认你的系统安装了asppjeg组件;

2、确认你的科汛后台已经设置了启用asppjeg组件,并且是‘按大小’生成缩略图;

3、我用的是买的科汛基础版,不知区别如何,若在其他版本修改出错,你只要认真分析下我的分割算法,就可以套用任何支持aspjpeg组件的上传文件!

 

===============================================

aspjpeg1.8组件***版下载地址:http://download.csdn.net/source/230631

注册码:
name:zwren
sn:09268-26217-40710


检测是否注册成功的方法:
将以下代码保存为asp,拷贝在服务器上,用浏览器打开,看返回结果。
<%
set jpeg=server.createobject("persits.jpeg")
response.write jpeg.expires
'检测aspjpeg的注册状态
'注册成功则到期时间为:9999-9-9
'否则为:安装日期加1个月期限
%>

====================================================

 

若已经安装了asppjeg组件,就可以执行下步说明

 

利用asppjeg组件对上传图片进行完美黄金0.618分割,图片按科汛后台设置的大小比例缩小并不变形。任何cms或其他程序aspjpeg上传均可套用以下方法。

 

效果图:我设置的是150×130,看效果

 

 

(原图1)

 

自动生成的效果(150×130)

 


此主题相关图片如下:2008040614135541937_s.jpg
2008040614135541937_s.jpg

 

 

 

原图2(宽行图片)

 

 

自动生成效果(150×130)

 


此主题相关图片如下:2008040614420025174_s.jpg
2008040614420025174_s.jpg

 

 

实现起来其实很简单的。丷

 

代码如下:(只要2步就OK,包括内置的sk采集系统)

 

开始。。。。。。

以下内容只有回复后才可以浏览,请先登录!

 

 

第二部分:sk采集系统自动按你后台设的小图大小自动生成不变性小图,并且写入科汛文章小图框框里~

(只修改了文章采集部分,其他部分修改雷同,经过文章采集测试正常)

 

1、确认你的系统安装了asppjeg组件;

2、确认你的sk已经设置了启用asppjeg组件,并且是‘按大小’生成缩略图;

 

1、修改 Plus\SK_Cj\Inc\cj_cls.asp

(红色部分为增加)

 

  a---大约2939 行 找到 加入objImage.crop

 

     objMark.Open Server.MapPath(MarkPicture)
     GetPostion CInt(MarkPosition), x, y, objImage.OriginalWidth, objImage.OriginalHeight,objImage.crop, MarkWidth, MarkHeight 
 

   b---大约3085行

         Set objImage = Server.CreateObject("Persits.Jpeg")
     objImage.Open FileName
     If Rate = 0 And (Width <> 0 Or Height <> 0) Then
      If Width < objImage.OriginalWidth And Height < objImage.OriginalHeight Then
       If Width = 0 And Height <> 0 Then
        objImage.Width = objImage.OriginalWidth / objImage.OriginalHeight * Height
        objImage.Height = Height
       ElseIf Width <> 0 And Height = 0 Then
        objImage.Width = Width
        objImage.Height = objImage.OriginalHeight / objImage.OriginalWidth * Width
       ElseIf Width <> 0 And Height <> 0 Then
        objImage.Width = Width
        objImage.Height = Height
       End If
      End If
     ElseIf Rate <> 0 Then

 

改为:

   Set objImage = Server.CreateObject("Persits.Jpeg")
     objImage.Open FileName
     If Rate = 0 And (Width <> 0 Or Height <> 0) Then
      If Width < objImage.OriginalWidth And Height < objImage.OriginalHeight Then
                dim qjazhro_h,qjazhro_w,qjazhro_t,qjazhro_hj,qjazhro,mznvhai
       qjazhro=round((Width/Height),3)
       mznvhai=round((objImage.OriginalWidth/objImage.OriginalHeight),3)
       If qjazhro<mznvhai Then
           objImage.Height = Height
        objImage.Width = round((objImage.OriginalWidth / objImage.OriginalHeight * Height),3)
        qjazhro_w=round(((objImage.Width-Width)/2),3)
        qjazhro_t=Width+qjazhro_w
        objImage.crop qjazhro_w,0,qjazhro_t,Height
       ElseIf qjazhro>mznvhai Then
        objImage.Width = Width
        objImage.Height = round((objImage.OriginalHeight / objImage.OriginalWidth * Width),3)
        qjazhro_h=objImage.Height-Height
        qjazhro_hj=qjazhro_h-(round((qjazhro_h*0.618),3))
        qjazhro_t=Height+qjazhro_hj
        objImage.crop 0,qjazhro_hj,Width,qjazhro_t
       ElseIf qjazhro=mznvhai Then
        objImage.Width = Width
        objImage.Height = Height
       End If
      End If
     ElseIf Rate <> 0 Then

  

2、大约492行,增加一段(红色为增加部分)

   If SaveRemoteFile(SavePath & strFileName,RemoteFileUrl)=True Then
    PathTemp=SavePath & strFileName
    ConStr=Re.Replace(ConStr,PathTemp)
    Re.Pattern=strInstallDir & strChannelDir
    UploadFiles=UploadFiles & "|" & Re.Replace(SavePath &strFileName,"")
    Response.Flush()
    response.write " &nbsp;&nbsp;&nbsp;图片保存地址:" & PathTemp & "<br>"
    if Thumb_WaterMark=1 then call SKThumb.AddWaterMark(PathTemp)'水印
 
'展龙增加部分开始

   dim fff,ddd

    fff=split(strFileName,".")(0)&"_mznvhai."& strFileType  '这里_mznvhai是小图识别,可以任意修改
    call SKThumb.CreateThumbs(SavePath & strFileName,SavePath & fff)
    response.write " &nbsp;&nbsp;&nbsp;图片保存地址成功:" & fff & "<br>"

 

'展龙增加部分开始

    Else
    PathTemp=RemoteFileUrl
    ConStr=Re.Replace(ConStr,PathTemp)
    'UploadFiles=UploadFiles & "|" & RemoteFileUrl
    End If
    ElseIf RemoteFileurl<>"$False$" and SaveTf=False Then'不保存图片
    Re.Pattern =TempArray(Tempi)
    ConStr=Re.Replace(ConStr,RemoteFileUrl)
    UploadFiles=UploadFiles & "|" & RemoteFileUrl
    End If
    Next  
    Set Re=nothing
    If UploadFiles<>"" Then
    UploadFiles=Right(UploadFiles,Len(UploadFiles)-1)
    End If
    ReplaceSaveRemoteFile=ConStr
 End function

 

 

3、加入自动把小图写入文章默认框框里

 

依然修改修改 Plus\SK_Cj\Inc\cj_cls.asp文件,大约2130行  

(红色为修改部分,蓝色为修改地方)

Case 1'--文章数据库

.

.

     If x_tp=1 then
      CMSRS("picurl")=picpath
     Else
      UploadFiles_1=Split(UploadFiles,"|")
      If Ubound(UploadFiles_1) >= 0 then
       CMSRS("picurl")=UploadFiles_1(0)
      Else
       CMSRS("picurl")=UploadFiles
      End if
     End if

 

改为:

     If x_tp=1 then
           CMSRS("picurl")=picpath
     Else
     UploadFiles_1=Split(UploadFiles,"|")
     If Ubound(UploadFiles_1) >= 0 then
        dim ggo,ggo1,rrr,rrr1
        ggo=UploadFiles_1(0)
              rrr = Split(ggo,".")
              rrr1=Lcase(rrr(Ubound(rrr)))'文件类型
        ggo1=split(ggo,".")(0)&"_mznvhai."&rrr1 '提示:_mznvhai小图识别要以下面的识别统一修改
       CMSRS("picurl")=ggo1
      Else
       CMSRS("picurl")=UploadFiles
      End if
     End if

 

 

 

=====================(完)====================================

 

最后还有这种效果,按照你的要求自动生成缩略图并且黄金分割不变行,aspjpeg组件非常强大,效果多多,还可修改图片为圆角,建议安装使用,为了维护cms正版权利,只点到为此!见谅!

 

 


此主题相关图片如下:screenshot.gif
screenshot.gif
 
  支持(1) | 反对(0) 回到顶部顶端 回到底部底部
梦中女孩 当前离线

46

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:846 分
登录次数:49 次
注册时间:2008/3/7
最后登录:2009/9/18
梦中女孩 发表于:2008/4/7 18:17:00   | 显示全部帖子 查看该作者主题 沙发 
科汛在线网校系统
以下是引用to_me在2008-4-7 17:56:30的发言:
谢谢,调试成功,但sk不行,能不能搞个sk采集自动缩略不变形的,盼

马上提供

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
梦中女孩 当前离线

46

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:846 分
登录次数:49 次
注册时间:2008/3/7
最后登录:2009/9/18
梦中女孩 发表于:2008/4/7 18:17:00   | 显示全部帖子 查看该作者主题 藤椅 
科汛在线网校系统
以下是引用diyu1123在2008-4-7 17:23:56的发言:
 

Microsoft VBScript 编译器错误 错误 '800a0400'

缺少语句

E:\WWWROOT\HZFWQ\DIYU1123\WWWROOT\ADMIN\../KS_Cls/KS.Thumbs.asp,行 374

Case 2

 

 

 

出错了啊

 

 

对照一下吧

 

 

    Case 1
     If Not KS.IsObjInstalled("Persits.Jpeg") Then
      Exit Function
     End If
     If KS.IsExpired("Persits.Jpeg") Then
      Response.Write ("对不起,Persits.Jpeg组件已过期!")
      Response.End
     End If
     Set objImage = Server.CreateObject("Persits.Jpeg")
     objImage.Open FileName
     If Rate = 0 And (Width <> 0 Or Height <> 0) Then
      If Width < objImage.OriginalWidth And Height < objImage.OriginalHeight Then
 '修改开始      
         dim qjazhro_h,qjazhro_w,qjazhro_t,qjazhro_hj,qjazhro,mznvhai
       qjazhro=round((Width/Height),3)
       mznvhai=round((objImage.OriginalWidth/objImage.OriginalHeight),3)
       If qjazhro<mznvhai Then
           objImage.Height = Height
        objImage.Width = round((objImage.OriginalWidth / objImage.OriginalHeight * Height),3)
        qjazhro_w=round(((objImage.Width-Width)/2),3)
        qjazhro_t=Width+qjazhro_w
        objImage.crop qjazhro_w,0,qjazhro_t,Height
       ElseIf qjazhro>mznvhai Then
        objImage.Width = Width
        objImage.Height = round((objImage.OriginalHeight / objImage.OriginalWidth * Width),3)
        qjazhro_h=objImage.Height-Height
        qjazhro_hj=qjazhro_h*0.3
        qjazhro_t=Height+qjazhro_hj
        objImage.crop 0,qjazhro_hj,Width,qjazhro_t
       ElseIf qjazhro=mznvhai Then
        objImage.Width = Width
        objImage.Height = Height


    '修改结束

     
       End If
      End If
     ElseIf Rate <> 0 Then
      objImage.Width = objImage.OriginalWidth * Rate
      objImage.Height = objImage.OriginalHeight * Rate
     End If
     objImage.Save ThumbFileName

 

 


    Case 2

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行6.18750秒 powered by KesionCMS 9.0