请教关于图片水印的问题

问题描述

网上的代码都差不多找出最常用的几句://原始图片都是jpeg格式ImageoriginalImage=Image.FromFile(...);//水印图片ImagewaterMarkImage=Image.FromFile(...);Graphicsg=Graphics.FromImage(originalImage);g.CompositingMode=System.Drawing.Drawing2D.CompositingMode.SourceOver;g.InterpolationMode=System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;//画水印g.DrawImage(waterMarkImage,...);originalImage.Save("新图片路径",ImageFormat.Jpeg);问题是这样:我用原始图片为8.6mb的图片加上水印保存之后只有1mb多一点怎么样才能加水印而不改变图片的其他属性(大小)呢?

解决方案

解决方案二:
该回复于2012-03-05 10:57:12被版主删除
解决方案三:

解决方案四:
懒的找了,你看这个吧。
解决方案五:
我博客usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.IO;usingSystem.Drawing;usingSystem.Drawing.Imaging;///<summary>///PictureHandler的摘要说明///</summary>publicclassPicHandler:IHttpHandler{publicvoidProcessRequest(HttpContextcontext){context.Response.ContentType="text/plain";stringimgUrl=context.Request.PhysicalPath;//得到当前处理图片的物理路径if(File.Exists(imgUrl)){Imageimg=Image.FromFile(imgUrl);//通过图片路径得到图片对象Imagewatering=Image.FromFile(context.Server.MapPath("~/themes/images/water.jpg"));//得到数字水印图片Graphicsg=Graphics.FromImage(img);//通过图片对象创建画布g.DrawImage(watering,newRectangle(img.Width-watering.Width,img.Height-watering.Height,watering.Width,watering.Height),0,0,watering.Width,watering.Height,GraphicsUnit.Pixel);//画图context.Response.ContentType="image/jpeg";//设置图片的格式img.Save(context.Response.OutputStream,ImageFormat.Jpeg);//把图片保存在输出流中g.Dispose();//销毁画布img.Dispose();//销毁图片context.Response.End();}else{Imagedefaultimg=Image.FromFile(context.Server.MapPath("~/themes/images/water.jpg"));//通过图片路径得到默认图片对象Imagewatering=Image.FromFile(context.Server.MapPath("~/themes/images/water.jpg"));//得到数字水印图片Graphicsg=Graphics.FromImage(defaultimg);//通过图片对象创建画布g.DrawImage(watering,newRectangle(defaultimg.Width-watering.Width,defaultimg.Height-watering.Height,watering.Width,watering.Height),0,0,watering.Width,watering.Height,GraphicsUnit.Pixel);//画图context.Response.ContentType="image/jpeg";//设置图片的格式defaultimg.Save(context.Response.OutputStream,ImageFormat.Jpeg);g.Dispose();defaultimg.Dispose();context.Response.End();}}publicboolIsReusable{get{returnfalse;}}}

解决方案六:
你代码中指定了Jpeg格式,并用了默认的图像品质:originalImage.Save("新图片路径",ImageFormat.Jpeg);1、试试保留原照片的格式xxx,比如:originalImage.Save("新图片路径.xxx");2、或调高图像品质的JPEG压缩(一般不需要,除非有高图像品质要求)。

时间: 2024-12-21 20:13:08

请教关于图片水印的问题的相关文章

使用AspJpg制作图片水印

上次做过图片水印,效果很差,没办法把图片弄成背景透明的,用背景透明gif会自动填充成白色.用去掉某种颜色的功能,图片颜色总是不纯,出来的效果斑斑点点.今天灵机一动,把这两个结合起来,用背景透明的gif,并且抽取水印底色,果然成功了!ogvbox.Canvas.Pen.Color = &H000000 \\\'// 边框的颜色ogvbox.Canvas.Pen.Width = 1 \\\'// 边框的粗细ogvbox.Canvas.Brush.Solid = False \\\'// 图片边框内是

php 图片水印类

<?php class ThumbHandler { var $dst_img; // 目标文件 var $h_src; // 图片资源句柄 var $h_dst; // 新图句柄 var $h_mask; // 水印句柄 var $img_create_quality = 100; // 图片生成质量 var $img_display_quality = 80; // 图片显示质量,默认为75 var $img_scale = 0; // 图片缩放比例 var $src_w = 0; // 原

利用jpeg组件加图片水印函数

函数 写了图片水印效果函数,代码如下:     程序代码:  sub jpegclass(imgurl,fontsize,family,isbold,top,left,content) '调用过程名         Dim Jpeg,font_color,font_size,font_family,f_width,f_height,f_content    '建立实例        Set Jpeg = Server.CreateObject("Persits.Jpeg")      

PHP图片水印函数:支持以图片和文字方式添加水印

今天是六一儿童节,嘿嘿,和大家分享下在PHP网站开发中经常用到的给图片添加水印的函数源码,由David编写,亲自测试通过,支持以图片和文字两种方式给图片添加水印.图片支持GIF,PNG,JPG三种格式,水印图片支持PNG和GIF.闲话少说,贴出我的PHP图片水印函数. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162

将上传图片打上防伪图片水印并写入数据库

上传|上传图片|数据|数据库 /* Author: sharpcn | Scorpion Studio: www.bkwww.com Copyright(c) 2004 明天家园 Function:将上传的图片添加防伪图片水印,并将图片直接写入数据库,不保留在硬盘.*/ // 涉及命名空间using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Data.Sql

如何在Word 2013文档中插入图片水印

通过在Word2013文档中插入图片自定义水印(例如将公司LOGO作为水印),可以使文档更加正式化,同时也是对Word文档版权的一种声明.在Word2013文档中插入图片自定义水印的步骤如下所述: 第1步,打开Word2013文档窗口,切换到"页面布局"功能区.在"页面背景"分组中单击"水印"按钮,并在打开的水印面板中选择"自定义水印"命令,如图2013072928所示. 图2013072928 选择"自定义水印&q

使用一般处理程序(IHttpHandler)制作图片水印

做网站的时候经常需要将图片加上网站名称的水印.这样做可以使别人转载图片的时候出现图片出处 ,利于网站宣传.但是如果利用ps来一个一个加水印工作量非常浩大,而且修改了之后就没法还原.这 篇教程教大家利用一般处理程序(Handler)制作图片水印,这种水印的优点是一经修改全站适用,而且 不改变原来的图片. 制作水印分为两种方法,一种是利用局部Handler,另一种是利用全局Handler.前者可以灵活的选择 文件夹内的图片是否都加水印,但印.为了节省篇幅Handler的教程就不写了.是每次做链接的时

怎么用photoshop去除图片水印?

怎么用photoshop去除图片水印?   工具/原料 电脑 PS软件 方法/步骤 1:打开PS软件,点击"文件"-"打开",然后选择你要P的图,如下图 2:选取"仿制图章工具s" 3:此时鼠标变成一个圆圈,然后移动到文字和图像的旁边白云 4:按住"Alt"不放,此时鼠标的小圆圈中间带了"+",这时点击一下鼠标左键,这样就把白云仿制出来

java图片处理类(图片水印,图片缩放)

可实现以下常用功能:缩放图像.切割图像.图像类型转换.彩色转黑白.文字水印.图片水印等  代码如下 复制代码 import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Toolkit; import java.awt.