首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • asp.net实现透明图片的输出,图片背景变黑色问题!(C#) 特急! [已结贴,结贴人:jinghu009]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 15:37:42 楼主
    专家啊,救命啊!
    private void DesignImage(string DesFilePath,int DesR,int DesWidth,int DesHeight)
        {
            System.Drawing.Image DesImage = System.Drawing.Image.FromFile(DesFilePath);
            if(DesR==1)
            {
                DesImage.RotateFlip(RotateFlipType.Rotate90FlipY);  //90度旋转
            }
            else if (DesR == 2)
            {
                DesImage.RotateFlip(RotateFlipType.RotateNoneFlipY); //180度旋转
            }
            else if (DesR == 3)
            {
                DesImage.RotateFlip(RotateFlipType.Rotate270FlipY);//360度旋转
            }
            int x = 0;
            int y = 0;
            int w = DesImage.Width;
            int h = DesImage.Height;

            //目标位图
            Bitmap dsImage = new Bitmap(DesWidth, DesHeight);
            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(dsImage);

            //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

            //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            //g.Clear(System.Drawing.Color.Transparent);
            Color color = Color.FromArgb(0, Color.Transparent);  //背景透明
            g.FillRectangle(new SolidBrush(color), new Rectangle(0, 0, DesWidth, DesHeight));
            g.DrawImage(DesImage, new System.Drawing.Rectangle(0, 0, DesWidth, DesHeight), new System.Drawing.Rectangle(x, y, w, h), System.Drawing.GraphicsUnit.Pixel);
            dsImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
            g.Dispose();
        }
    以上的代码是我实现透明图片输出的函数内容,可输出的图片的背景不是透明色,而是黑色,调试了很多次,都无法解决,特开此贴,请专家救急啊!
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 15:38:391楼 得分:0
    专家早点出现啊,在线等的!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 15:40:052楼 得分:0
    若是有时间请加我的msn:jinghu009@hotmail.com ,谢谢.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 15:47:343楼 得分:0
    Color color = Color.FromArgb(0, Color.Transparent);  //背景透明

    这里出现问题 我也刚发了个帖子:

    http://topic.csdn.net/u/20080507/15/9b05cf15-ad71-4722-a53d-8e3946fddd1d.html

    应该改成
    System.Drawing.Color.FromArgb(255, 250, 255, 249));
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 15:56:004楼 得分:0
    我用你说的方法测试了,结果背景色还不是透明的啊,请问还有其他的解决方法吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 15:56:335楼 得分:0
    Color color = Color.FromArgb(0, Color.White);  //试试啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:00:586楼 得分:0
    楼上的方法我以前也测试过的,背景就变为黑色了,还是感谢你的回复,继续等待.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:01:457楼 得分:0
    g.Clear(System.Drawing.Color.Transparent);
    这句好像是定义背景的吧 怎么注释了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:03:068楼 得分:0
    注释掉是因为,输出的图片背景是黑色的.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:05:509楼 得分:0
    专家们,大虾们,都进来看看撒.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 21:31:0010楼 得分:100
    这有代码
    http://www.c-sharpcorner.com/UploadFile/jacquesphilip/MakingThumbnailsOfTransparentImages11162005004933AM/MakingThumbnailsOfTransparentImages.aspx
    http://www.codedblog.com/2007/08/28/generating-a-transparent-gif-image-using-c/

    http://support.microsoft.com/kb/319061
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved