<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    空間站

    北極心空

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
    jsp 上傳圖片并生成縮位圖或者加水印

    // 添加水印,filePath?源圖片路徑,?watermark?水印圖片路徑
    public ? static ? boolean ?createMark(String?filePath,String?watermark)? {
    ImageIcon?imgIcon
    = new ?ImageIcon(filePath);
    Image?theImg?
    = imgIcon.getImage();
    ImageIcon?waterIcon
    = new ?ImageIcon(watermark);
    Image?waterImg?
    = waterIcon.getImage();
    int ?width = theImg.getWidth( null );
    int ?height = ?theImg.getHeight( null );
    BufferedImage?bimage?
    = ? new ?BufferedImage(width,height,?BufferedImage.TYPE_INT_RGB);?
    Graphics2D?g
    = bimage.creatGraphics(?);
    g.setColor(Color.red);
    g.setBackground(Color.white);
    g.drawImage(theImg,?
    0 ,? 0 ,? null ?);
    g.drawImage(waterImg,?
    100 ,? 100 ,? null ?);
    g.drawString(
    " 12233 " , 10 , 10 );? // 添加文字
    g.dispose();
    try {
    FileOutputStream?out
    = new ?FileOutputStream(filePath);
    JPEGImageEncoder?encoder?
    = JPEGCodec.createJPEGEncoder(out);?
    JPEGEncodeParam?param?
    = ?encoder.getDefaultJPEGEncodeParam(bimage);?
    param.setQuality(50f,?
    true );?
    encoder.encode(bimage,?param);?
    out.close();
    }
    catch (Exception?e) {? return ? false ;?}
    return ? true ;
    }

    JAVA給圖片上添加水印文字

    import ?java.awt. * ;
    import ?java.awt.image. * ;
    import ?java.io. * ;
    import ?javax.swing. * ;
    import ?com.sun.image.codec.jpeg. * ;
    import ?java.text.AttributedString;
    import ?java.awt.font.TextAttribute;
    import ?java.text.AttributedCharacterIterator;


    public ? class ?WaterMark? {
    ???
    /** ? */ /**
    ??????*?給圖片添加水印
    ?????*?
    @param ?filePath?需要添加水印的圖片的路徑
    ?????*?
    @param ?markContent?水印的文字
    ?????*?
    @param ?markContentColor?水印文字的顏色
    ?????*?
    @param ?qualNum?圖片質(zhì)量
    ?????*?
    @param ?fontType?字體
    ?????*?
    @param ?fontsize?字體大小
    ?????*?
    @return
    ?????*?
    @author ?zhongweihai?newwei2001@yahoo.com.cn
    ?????
    */

    ????
    public ? boolean ?createMark(String?filePath,String?markContent,Color?markContentColor, float ?qualNum,
    ??????????????????????????????String?fontType,
    int ?fontSize)
    ????
    {
    ????????ImageIcon?imgIcon
    = new ?ImageIcon(filePath);
    ????????Image?theImg?
    = imgIcon.getImage();
    ????????
    int ?width = theImg.getWidth( null );
    ????????
    int ?height = ?theImg.getHeight( null );
    ????????BufferedImage?bimage?
    = ? new ?BufferedImage(width,height,?BufferedImage.TYPE_INT_RGB);
    ????????Graphics2D?g
    = bimage.createGraphics();
    ????????g.setColor(markContentColor);
    ????????g.setBackground(Color.white);
    ????????g.drawImage(theImg,?
    0 ,? 0 ,? null ?);
    ????????AttributedString?ats?
    = ? new ?AttributedString(markContent);
    ????????Font?f?
    = ? new ?Font(fontType,Font.BOLD,?fontSize);

    ????????ats.addAttribute(TextAttribute.FONT,?f,?
    0 ,markContent.length()?);
    ????????AttributedCharacterIterator?iter?
    = ?ats.getIterator();

    ????????g.drawString(iter,width
    / 5 ,height / 5 );? // 添加水印的文字和設(shè)置水印文字出現(xiàn)的內(nèi)容
    ????????g.dispose();

    ????????
    try {
    ????????FileOutputStream?out
    = new ?FileOutputStream(filePath);
    ????????JPEGImageEncoder?encoder?
    = JPEGCodec.createJPEGEncoder(out);
    ????????JPEGEncodeParam?param?
    = ?encoder.getDefaultJPEGEncodeParam(bimage);
    ????????param.setQuality(qualNum,?
    true );
    ????????encoder.encode(bimage,?param);
    ????????out.close();
    ????????}
    catch (Exception?e)
    ????????
    {? return ? false ;?}
    ????????
    return ? true ;
    ????}


    ????
    public ? static ? void ?main(String[]?args)
    ????
    {
    ?????WaterMark?wm?
    = ? new ?WaterMark();
    ?????wm.createMark(
    " c:\year2-11.jpg " , " 此圖片來(lái)自煞筆網(wǎng) " ,Color.red,70f, " 黑體 " , 23 );
    ?????}

    }
    生成縮小jpg圖片程序

    import ?java.awt.image.BufferedImage;
    import ?java.io.File;
    import ?javax.swing.Icon;
    import ?javax.swing.ImageIcon;
    import ?javax.imageio.ImageIO;
    import ?java.awt.image.AffineTransformOp;
    import ?java.awt.geom.AffineTransform;
    import ?java.awt.Image;

    public ? class ?ZoomPicture {
    ??
    public ? static ? void ?main(String?arg[]) {
    ????
    ????String?filePath?
    = ? " g:/圖片.jpg " ;?? // ?圖片的位置
    ????
    ????
    int ?height = 50 ;
    ????
    int ?width = 150 ;
    ????Icon?icon?
    = ? null ;
    ????
    try {
    ???????icon?
    = ?getFixedBoundIcon(filePath,height,width);
    ???????}
    catch (Exception?e) {
    ????????System.out.println(
    " exception?:? " ? + ?e);
    ????????}

    ????System.out.println(
    " ?###? " ? + ?icon);?? // 生成新圖片的位置;
    ??}

    ??
    ?????
    public ? static ?Icon?getFixedBoundIcon(String?filePath,? int ?height,? int ?width)?
    ????????
    throws ?Exception {
    ????????
    double ?Ratio = 0.0 ;?
    ???????
    // 縮放比例?
    ???File?F? = ? new ?File(filePath);?
    ????????
    if ?( ! F.isFile())? throw ? new ?Exception
    ???????????(F
    + " ?is?not?image?file?error?in?getFixedBoundIcon! " );?
    ????????Icon?ret?
    = ? new ?ImageIcon(filePath);
    ????????BufferedImage?Bi?
    = ?ImageIO.read(F);?
    ????????
    if ?((Bi.getHeight() > height)? || ?(Bi.getWidth() > width)) {?
    ????
    if ?(Bi.getHeight() > Bi.getWidth()) {?
    ?????Ratio?
    = ?( new ?Integer(height)).doubleValue()? / Bi.getHeight();?
    ????}

    ????
    else ? {
    ??????Ratio?
    = ?( new ?Integer(width)).doubleValue() / Bi.getWidth();?
    ????}

    ????
    int ?lastLength? = ?filePath.lastIndexOf( " . " );
    ????String?subFilePath?
    = ?filePath.substring( 0 ,lastLength);
    ????String?fileType?
    = ?filePath.substring(lastLength);
    ????File?zoomFile?
    = ? new ?File(subFilePath + " _ " + height? + " _ " + width + fileType);
    ????Image?Itemp?
    = ?Bi.getScaledInstance?(width,height,Bi.SCALE_SMOOTH);
    ????AffineTransformOp?op?
    = ? new ?AffineTransformOp
    ?????(AffineTransform.getScaleInstance(Ratio,?Ratio),?
    null );
    ????Itemp?
    = ?op.filter(Bi,? null );?
    ????
    try ? {
    ??????ImageIO.write((BufferedImage)Itemp,?
    " jpg " ,?zoomFile);?
    ??????ret?
    = ? new ?ImageIcon(zoomFile.getPath());?
    ????}
    catch ?(Exception?ex)? {
    ?????System.out.println(
    " ########?here?error?:? " ? + ?ex);
    ????}
    ?
    ???}

    ????
    return ?ret;
    ?}

    }



    posted on 2006-11-24 15:34 蘆葦 閱讀(7428) 評(píng)論(5)  編輯  收藏 所屬分類: JAVA

    Feedback

    # re: jsp 上傳圖片并生成縮位圖或者加水印 ,給圖片添加水印,生成縮小圖片程序 等 2006-11-24 15:34 蘆葦
    Aspjpeg添加水印完整方法
    Aspjpeg添加水印完整方法
    用ASPJPEG組件制作圖片的縮略圖和加水印


    ASPJPEG是Persits出品的共享軟件,試用期為30天,您可以在這里下載:http://www.persits.com/aspjpeg.exe。最新版本號(hào)是1.3
    ASPJPEG是一款功能相當(dāng)強(qiáng)大的圖象處理組件,用它可以輕松地做出圖片的縮略圖和為圖片加上水印功能。下面簡(jiǎn)單介紹一下使用方法:
    您先要執(zhí)行下載得到的exe文件,安裝該組件
    1、為圖片制作縮略圖

    <% \\\' 建立實(shí)例
    Dim Jpeg,Path
    Set Jpeg = Server.CreateObject("Persits.Jpeg")
    \\\' 圖片所在位置
    Path = Server.MapPath("images") & "\\\\clock.jpg"


    \\\' 打開(kāi)
    Jpeg.Open Path

    \\\' 設(shè)置縮略圖大小(這里比例設(shè)定為50%)
    Jpeg.Width = Jpeg.OriginalWidth / 2
    Jpeg.Height = Jpeg.OriginalHeight / 2

    \\\' 保存縮略圖到指定文件夾下
    Jpeg.Save Server.MapPath("images") & "\\\\clock_small.jpg"

    \\\' 注銷實(shí)例
    Set Jpeg = Nothing
    %>

    <IMG SRC="images/clock.jpg"><P>
    <IMG SRC="images/clock_small.jpg">


    2、為圖片加入水印功能
    <%
    Dim Jpeg
    \\\' 建立實(shí)例
    Set Jpeg = Server.CreateObject("Persits.Jpeg")
    \\\' 打開(kāi)目標(biāo)圖片
    Jpeg.Open Server.MapPath("images/dodge_viper.jpg")

    \\\' 添加文字水印
    Jpeg.Canvas.Font.Color = &HFF0000\\\' 紅色
    Jpeg.Canvas.Font.Family = "宋體"
    Jpeg.Canvas.Font.Bold = True
    Jpeg.Canvas.Print 10, 10, "Copyright (c) Cnmaya.org"

    \\\' 保存文件
    Jpeg.Save Server.MapPath("images/dodge_viper_framed.jpg")

    \\\' 注銷對(duì)象
    Set Jpeg = Nothing
    %>


    上次做過(guò)圖片水印,效果很差,沒(méi)辦法把圖片弄成背景透明的,用背景透明gif會(huì)自動(dòng)填充成白色。用去掉某種顏色的功能,圖片顏色總是不純,出來(lái)的效果斑斑點(diǎn)點(diǎn)。今天靈機(jī)一動(dòng),把這兩個(gè)結(jié)合起來(lái),用背景透明的gif,并且抽取水印底色,果然成功了!

    ogvbox.Canvas.Pen.Color = &H000000 \\\'// 邊框的顏色
    ogvbox.Canvas.Pen.Width = 1 \\\'// 邊框的粗細(xì)
    ogvbox.Canvas.Brush.Solid = False \\\'// 圖片邊框內(nèi)是否填充顏色
    ogvbox.DrawImage ogvbox.Width-210, ogvbox.Height-74, Logobox ,0.3,&HFFFFFF \\\'// 加入圖片的位置坐標(biāo)(添加水印圖片),我用圖片大小減去水印大小,把水印加在右下角。參數(shù)順序?yàn)椋核阶鴺?biāo),垂直坐標(biāo),水印圖片地址,水銀透明度,抽取顏色(&H表示16進(jìn)制)
    ogvbox.Canvas.Bar 0, 0, ogvbox.Width, ogvbox.Height \\\'// 圖片邊框線的位置坐標(biāo)和大小
    ogvbox.Save Server.MapPath(imagename) \\\'// 生成文件
    \'//------Pollener.com AspJpeg組件的預(yù)覽和水印生成------開(kāi)始------
    \'創(chuàng)建預(yù)覽圖片:call CreateView(原始文件的路徑,預(yù)覽文件名及路徑)
    Sub CreateView(imagename,tempFilename)
    \'定義變量。
    Dim PreviewImageFolderName
    Dim ogvbox,objFont
    Dim Logobox,LogoPath
    LogoPath = Server.MapPath("images") & "\\shuiyin.gif" \'//加入圖片所在路徑及文件名(我的是論壇\\images\\shuiyin.gif)。

    Select Case upload_ViewType
    Case 0
    \'---------------------CreatePreviewImage---------------
    set ogvbox = Server.CreateObject("CreatePreviewImage.cGvbox")
    ogvbox.SetSavePreviewImagePath=Server.MapPath(tempFilename) \'預(yù)覽圖存放路徑。
    ogvbox.SetPreviewImageSize =SetPreviewImageSize \'預(yù)覽圖寬度。
    ogvbox.SetImageFile = trim(Server.MapPath(imagename)) \'imagename原始文件的物理路徑。
    \'創(chuàng)建預(yù)覽圖的文件。
    If ogvbox.DoImageProcess=false Then
    Response.write "生成預(yù)覽圖錯(cuò)誤:"& ogvbox.GetErrString
    End If
    Case 1
    \'---------------------AspJpegV1.2---------------
    Set Logobox = Server.CreateObject("Persits.Jpeg")
    \'//建議不要圖片和文字水印同時(shí)使用,本代碼為使用圖片水印。
    Logobox.Open LogoPath \'//讀取添加的圖片。

    \'//重新設(shè)置圖片的大小。
    Logobox.Width = 186 \'//用做水印的圖片的寬度值(像素)。
    Logobox.Height = 52 \'//用做水印的圖片的高度值(像素)。
    \'//添加水印。
    Set ogvbox = Server.CreateObject("Persits.Jpeg")
    \'//讀取要處理的原文件。
    ogvbox.Open Trim(Server.MapPath(imagename))
    If ogvbox.OriginalWidth<Cint(ImageWidth) or ogvbox.Originalheight<Cint(ImageHeight) Then
    F_Viewname=""
    Set ogvbox = Nothing
    Exit Sub
    Else
    IF ImageMode<>"" and FileExt<>"gif" Then \'//如果將這行改為IF ImageMode<>"" Then則可給上傳的GIF圖片也加上水印,但是那些動(dòng)畫(huà)的GIF在加了水印以后就只剩第一楨了,根據(jù)你的需求酌情處理吧。

    \'//關(guān)于修改字體及文字顏色的。
    \'//ogvbox.Canvas.Font.Color = &H0000FF \'//水印文字的顏色,&H后面輸入色彩值。
    \'//ogvbox.Canvas.Font.Size = 18 \'//水印文字的大小。
    \'//ogvbox.Canvas.Font.Family = "Arial" \'//水印文字的字體名稱。
    \'//ogvbox.Canvas.Font.ShadowColor = &H000000 \'//水印文字的陰影色彩。
    \'//ogvbox.Canvas.Font.ShadowXoffset = 1 \'//水印文字陰影向右偏移的像素值,輸入負(fù)值則向左偏移。
    \'//ogvbox.Canvas.Font.ShadowYoffset = 1 \'//水印文字陰影向下偏移的像素值,輸入負(fù)值則向右偏移。
    \'//ogvbox.Canvas.Font.Quality = 3 \'//水印文字的清晰度,從0~4,變換不是很大,建議用2或3。
    \'//ogvbox.Canvas.Font.Bold = True \'//水印文字是否為粗體,True=粗體 False=正常。

    \'ogvbox.Canvas.Print 10, 10, ImageMode \'//水印文字的起始坐標(biāo)(像素)。
    ogvbox.Canvas.Pen.Color = &H000000 \'//增加水印后圖片的邊框色彩。
    ogvbox.Canvas.Pen.Width = 1 \'//增加水印后圖片的邊框?qū)挾取?
    ogvbox.Canvas.Brush.Solid = False \'//邊框內(nèi)是否填充顏色,你可以試試看值為True時(shí)的效果^o^
    ogvbox.DrawImage ogvbox.width-186, ogvbox.height-52, Logobox, 0.5 \'//水印圖片的起始坐標(biāo),我這里ogvbox.width-186, ogvbox.height-52,表示圖片在右下角,因?yàn)槲业膱D片寬是186,高是52,所以這樣寫,你可以根據(jù)自己的圖片進(jìn)行調(diào)整。0.5是透明度,我這里是半透明,1表示不透明,你也可以試試看0.7或者0.8的效果。
    ogvbox.Canvas.Bar 0, 0, ogvbox.Width, ogvbox.Height \'//水印可用的范圍。我這里表示左上角至右下角,即整張圖片的任意為止都可加水印。
    ogvbox.Save Server.MapPath(imagename) \'//根據(jù)以上參數(shù)生成增加水印后的圖片文件。
    End If
    ogvbox.Width = ImageWidth
    ogvbox.height = ImageHeight
    \'ogvbox.height = ogvbox.Originalheight*ImageWidth\\ogvbox.OriginalWidth
    ogvbox.Sharpen 1, 120
    ogvbox.Save Server.MapPath(tempFilename) \'//生成增加水印后的圖片的預(yù)覽圖片。
    End If
    Set Logobox=Nothing
    \'//------Pollener.com AspJpeg組件的預(yù)覽和水印生成------結(jié)束------

      回復(fù)  更多評(píng)論
      

    # re: jsp 上傳圖片并生成縮位圖或者加水印 ,給圖片添加水印,生成縮小圖片程序 等 2009-02-24 14:11 12
    謝謝!  回復(fù)  更多評(píng)論
      

    # re: jsp 上傳圖片并生成縮位圖或者加水印 ,給圖片添加水印,生成縮小圖片程序 等 2009-05-21 22:21 wer
    謝謝

    -----------------------------------
    http://www.wjxj.com  回復(fù)  更多評(píng)論
      

    # re: jsp 上傳圖片并生成縮位圖或者加水印 ,給圖片添加水印,生成縮小圖片程序 等 2011-03-08 23:51 大賽
    謝謝  回復(fù)  更多評(píng)論
      

    # re: jsp 上傳圖片并生成縮位圖或者加水印 ,給圖片添加水印,生成縮小圖片程序 等[未登錄](méi) 2011-12-21 09:38 zsd
    阿發(fā)  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 亚洲午夜久久久影院| 国产免费av片在线看| 中文字幕乱理片免费完整的| 日韩亚洲综合精品国产| 九九精品国产亚洲AV日韩| 日韩亚洲综合精品国产| 粉色视频成年免费人15次| 国产精品亚洲va在线观看| 狼色精品人妻在线视频免费| 免费看黄网站在线看| 成人嫩草影院免费观看| 久久久久久久国产免费看| 国产日韩AV免费无码一区二区| 在线涩涩免费观看国产精品| 免费看黄的成人APP| 97在线视频免费| 永久免费毛片在线播放| 女人张开腿给人桶免费视频| 尤物永久免费AV无码网站| 免费少妇a级毛片| 国产亚洲一区二区三区在线不卡 | 久久99免费视频| 99精品一区二区免费视频| 永久看日本大片免费35分钟 | 免费观看亚洲人成网站| caoporm超免费公开视频| 十八禁在线观看视频播放免费| 99久久免费观看| 四虎国产精品免费久久| 国产高清免费观看| 亚洲宅男天堂在线观看无病毒| 亚洲AV美女一区二区三区| 亚洲成A∨人片在线观看无码| 亚洲中文字幕久久精品无码A| 黄网站色成年片大免费高清| 中文字幕成人免费高清在线视频| 免费人妻无码不卡中文字幕系| 日本成年免费网站| 亚洲成av人片不卡无码久久| 亚洲成a人片在线观看日本| 亚洲妓女综合网99|