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

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

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

    空間站

    北極心空

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      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?圖片質量
    ?????*?
    @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 );? // 添加水印的文字和設置水印文字出現的內容
    ????????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 " , " 此圖片來自煞筆網 " ,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) 評論(5)  編輯  收藏 所屬分類: JAVA

    Feedback

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


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

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


    \\\' 打開
    Jpeg.Open Path

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

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

    \\\' 注銷實例
    Set Jpeg = Nothing
    %>

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


    2、為圖片加入水印功能
    <%
    Dim Jpeg
    \\\' 建立實例
    Set Jpeg = Server.CreateObject("Persits.Jpeg")
    \\\' 打開目標圖片
    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")

    \\\' 注銷對象
    Set Jpeg = Nothing
    %>


    上次做過圖片水印,效果很差,沒辦法把圖片弄成背景透明的,用背景透明gif會自動填充成白色。用去掉某種顏色的功能,圖片顏色總是不純,出來的效果斑斑點點。今天靈機一動,把這兩個結合起來,用背景透明的gif,并且抽取水印底色,果然成功了!

    ogvbox.Canvas.Pen.Color = &H000000 \\\'// 邊框的顏色
    ogvbox.Canvas.Pen.Width = 1 \\\'// 邊框的粗細
    ogvbox.Canvas.Brush.Solid = False \\\'// 圖片邊框內是否填充顏色
    ogvbox.DrawImage ogvbox.Width-210, ogvbox.Height-74, Logobox ,0.3,&HFFFFFF \\\'// 加入圖片的位置坐標(添加水印圖片),我用圖片大小減去水印大小,把水印加在右下角。參數順序為:水平坐標,垂直坐標,水印圖片地址,水銀透明度,抽取顏色(&H表示16進制)
    ogvbox.Canvas.Bar 0, 0, ogvbox.Width, ogvbox.Height \\\'// 圖片邊框線的位置坐標和大小
    ogvbox.Save Server.MapPath(imagename) \\\'// 生成文件
    \'//------Pollener.com AspJpeg組件的預覽和水印生成------開始------
    \'創建預覽圖片:call CreateView(原始文件的路徑,預覽文件名及路徑)
    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) \'預覽圖存放路徑。
    ogvbox.SetPreviewImageSize =SetPreviewImageSize \'預覽圖寬度。
    ogvbox.SetImageFile = trim(Server.MapPath(imagename)) \'imagename原始文件的物理路徑。
    \'創建預覽圖的文件。
    If ogvbox.DoImageProcess=false Then
    Response.write "生成預覽圖錯誤:"& ogvbox.GetErrString
    End If
    Case 1
    \'---------------------AspJpegV1.2---------------
    Set Logobox = Server.CreateObject("Persits.Jpeg")
    \'//建議不要圖片和文字水印同時使用,本代碼為使用圖片水印。
    Logobox.Open LogoPath \'//讀取添加的圖片。

    \'//重新設置圖片的大小。
    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圖片也加上水印,但是那些動畫的GIF在加了水印以后就只剩第一楨了,根據你的需求酌情處理吧。

    \'//關于修改字體及文字顏色的。
    \'//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 \'//水印文字陰影向右偏移的像素值,輸入負值則向左偏移。
    \'//ogvbox.Canvas.Font.ShadowYoffset = 1 \'//水印文字陰影向下偏移的像素值,輸入負值則向右偏移。
    \'//ogvbox.Canvas.Font.Quality = 3 \'//水印文字的清晰度,從0~4,變換不是很大,建議用2或3。
    \'//ogvbox.Canvas.Font.Bold = True \'//水印文字是否為粗體,True=粗體 False=正常。

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

      回復  更多評論
      

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

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

    -----------------------------------
    http://www.wjxj.com  回復  更多評論
      

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

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

    主站蜘蛛池模板: 亚洲无码黄色网址| 最近免费最新高清中文字幕韩国| 亚洲欧洲中文日韩av乱码| 你是我的城池营垒免费看| 亚洲精品成人久久| 国产青草视频免费观看97 | 亚洲国产精品一区二区久久hs| 久久国产精品一区免费下载| 亚洲午夜福利在线视频| 亚洲午夜福利精品无码| 美女视频黄免费亚洲| 亚欧洲精品在线视频免费观看| 久久久亚洲欧洲日产国码是AV| 国产精品免费看久久久久| 国产一区二区免费| 精品国产日韩亚洲一区91| 久久久久亚洲精品成人网小说| 日韩毛片免费在线观看| 伊人久久免费视频| 免费国产黄网站在线观看动图| 亚洲成人免费电影| 国产亚洲AV手机在线观看| 日韩高清免费观看| 最近2019年免费中文字幕高清| 无遮挡a级毛片免费看| 亚洲AV无码一区二区三区人 | 国产成人人综合亚洲欧美丁香花 | 亚洲国产精品无码久久久| 亚洲一区二区三区AV无码| 免费看美女被靠到爽的视频| 免费女人高潮流视频在线观看| 国产免费久久精品丫丫| 亚洲av色香蕉一区二区三区蜜桃| 亚洲精品视频免费在线观看| 国产亚洲视频在线播放| 免费在线视频一区| 免费鲁丝片一级在线观看| 免费观看美女用震蛋喷水的视频 | 国产精品色午夜免费视频| 国产乱码免费卡1卡二卡3卡| 无码av免费一区二区三区试看|