【GIF图修改背景颜色(改为透明)】

GIF图修改背景颜色(改为透明)

前提

已经安装完成了PS

操作

首先打开需要修改背景的GIF文件,点击左上角的文件,选择导出—存储为WEB所用格式
在这里插入图片描述
选择完成后,选择左侧的放大镜图样,即可进行图像的放大以及缩小,默认为放大,按住键盘alt键即可改为缩小
在这里插入图片描述
右上角将颜色模式改为可选择
在这里插入图片描述
选择左侧工具栏中的吸管按钮,点击图片背景吸取颜色
在这里插入图片描述
在图像的右侧颜色像素图中,会显示刚刚选中的背景颜色色块,对颜色色块进行双击
在这里插入图片描述
在拾色器中进行背景颜色的更改,选择完成后点击确定
在这里插入图片描述
这里以红色为例
在这里插入图片描述
这时GIF图像就改为了红色背景
在这里插入图片描述
将右上角的图片模式,更改为GIF,这样就可以在此页面进行预览
在这里插入图片描述
在页面的右下角,小三角形为播放按钮,点击播放即可进行动态图的预览
在这里插入图片描述
若想图片更改为透明背景色,同样的方法,选中左侧的吸管按钮,选中背景颜色
在这里插入图片描述
在右侧的像素颜色中,被选择的背景颜色会呈现出选中状态,这时选择数字256旁边的马赛克图样按钮,点击之后,即可将背景更改为透明色
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
中文名: 像处理实用教程 作者: 柳青书分类: 软件 资源格式: PDF 版本: 文字版 出版社: 高等教育出版社书号: 978-7-04-012336-4发行时间: 2003年06月 地区: 大陆 语言: 简体中文 简介: 内容简介: 像处理是计算机应用最广泛的领域之一。计算机像处理软件的种类很多,本书在简单介绍像处理基本概念的基础上,介绍了目前流行的像处理软件Photoshop、形绘制软件CorelDRAW和网络像处理软件Fireworks。其中,以像处理软件Photoshop6.0为重点详细讲解。主要内容包括:形与像技术基础、Photoshop的基本概念和基本操作、像处理操作基础、层、通道、蒙板、路径、滤镜、ImageReady3.0、Photoshop的创作技能、中文CorelDRAW、Fireworks等。   由于本课程实践性很强,为了加强学生的操作技能和应用能力,体现高职高专的教学特色,本书结合具体实例介绍软件的功能,每章配以思考题和上机操作题。本书采用通俗易懂的语言,深入浅出地介绍软件的使用方法和技巧,配合各种实例,帮助读者掌握软件的应用和像处理的思想方法。   本书可作为高等专科学校、高等职业技术学院计算机专业及相关专业的像技术课程教材,也可供各类培训班教学使用和作为计算机像技术爱好者的自学参考书。 内容截: 目录: 第1章 形与像技术基础 1.1 形与像处理 1.1.1 形与像的概念 1.1.2 形与像技术 1.2 矢量与点阵 1.2.1 矢量 1.2.2 点阵 1.2.3 矢量和点阵的区别 1.3 形的动态显示 1.4 数字像的基本概念 1.4.1 像的分类 1.4.2 分辨率 1.5 色彩学基础知识 1.5.1 色彩的产生 1.5.2 色光三原色 1.5.3 色料三原色 1.5.4 常见色彩模式 1.6 彩色与位数 1.7 形系统的组成 1.7.1 形系统的基本功能与分类 1.7.2 形系统的硬件设备与软件 1.8 形构成与变换的基本概念 1.8.1 空间维数与坐标系 1.8.2 形变换 1.9 常见像存储格式 1.9.1 BMP格式 1.9.2 PSD/PDD格式 1.9.3 JPEG格式 1.9.4 TIFF格式 1.9.5 TGA格式 1.9.6 PCX格式 1.9.7 GIF格式 1.9.8 PICT格式 1.9.9 其他像文件格式 1.10 计算机像处理系统 1.10.1 显示器及相关概念 1.10.2 形显示卡及相关概念 1.10.3 扫描仪及相关概念 1.10.4 打印机 1.10.5 绘仪 习题一 第2章 Photoshop的基本概念和基本操作 2.1 Photoshop 6.0的功能特点与运行环境 2.1.1 Photoshop的历史与发展 2.1.2 Photoshop 6.0的主要功能特点 2.1.3 Photoshop的运行环境与启动 2.2 系统的设置、校准与优化 2.2.1 显示器的设置与校准 2.2.2 Photoshop工作环境的设置 2.3 Photoshop 6.0的窗口组成与基本操作 2.3.1 Photoshop 6.0的窗口与用户界面组成 2.3.2 Photoshop的工具箱的基本操作 2.3.3 Photoshop的控制面板的使用 2.4 Photoshop的视 2.4.1 像的缩放显示 2.4.2 标尺与参考线 2.4.3 建立新视 2.5 像的建立、打开、保存和关闭 2.5.1 像的建立、打开和关闭 2.5.2 像的保存 习题二 第3章 像处理操作基础 3.1 范围的选取 3.1.1 使用选择工具选取 3.1.2 用裁切工具选取 3.1.3 用套索工具选取 3.1.4 用魔术棒工具选取 3.1.5 其他选取方法 3.1.6 选取范围的控制 3.2 绘基本操作 3.2.1 画笔工具和铅笔工具 3.2.2 形状工具 3.2.3 其他绘工具 3.3 像修正操作 3.3.1 涂抹工具 3.3.2 模糊/锐化工具 3.3.3 减淡、加深和海绵工具 3.4 文字操作 3.4.1 基本文字的产生 3.4.2 文字的特技制作 3.5 案、着色与像工具 3.5.1 案与着色 3.5.2 渐变工具与着色 3.5.3 章工具 3.5.4 背景与填充 3.6 像的控制 3.6.1 像与画布尺寸的变更 3.6.2 画布的旋转 3.6.3 像的旋转与变形 3.6.4 像色彩控制 习题三 第4章 层 4.1 层的基本概念与层面板的操作 4.1.1 层的基本概念 4.1.2 层面板的使用 4.2 层的基本操作 4.2.1 新建层 4.2.2 层的复制、删除与移动 4.2.3 层蒙板 4.2.4 层组的操作 4.3 文字层的操作 4.3.1 文字层的建立 4.3.2 将文字层栅格化 4.4 层组 4.4.1 层组的概念 4.4.2 将层分组 4.5 层样式的应用 4.5.1 使用层样式 4.5.2 层样式的拷贝、修改和清除 4.5.3 将层样式转换成新层 4.6 像的合成 4.6.1 层的合并 4.6.2 清除层边缘斑点 习题四 第5章 通道、蒙板与路径 5.1 通道 5.1.1 像模式与通道 5.1.2 通道与通道面板的基本操作与使用 5.1.3 通道的创建 5.1.4 复制与删除通道 5.1.5 通道的分离与合并 5.1.6 通道混合 5.1.7 像的合成 5.2 蒙板 5.2.1 快速蒙板 5.2.2 用Alpha通道和存储选区产生蒙板 5.2.3 层蒙板 5.2.4 用文字蒙板工具创造文字效果 5.3 路径 5.3.1 路径和路径面板 5.3.2 路径的创建和编辑 5.3.3 路径的保存、复制、剪切和删除 5.3.4 路径和选区的相互转换 5.3.5 路径的填充和描边 5.3.6 路径的应用 习题五 第6章 滤镜 6.1 滤镜概述 6.1.1 滤镜的基本概念 6.1.2 滤镜的基本操作与使用 6.2 模糊滤镜 6.2.1 模糊/进一步模糊 6.2.2 动感模糊滤镜 6.2.3 高斯模糊滤镜 6.2.4 径向模糊滤镜 6.3 扭曲滤镜 6.3.1 球面化与挤压滤镜 6.3.2 旋转扭曲滤镜 6.3.3 玻璃滤镜 6.3.4 波浪、波纹与水波滤镜 6.4 锐化滤镜 6.4.1 锐化/进一步锐化滤镜和锐化边缘滤镜 6.4.2 USM锐化滤镜 6.5 风格化滤镜 6.5.1 浮雕效果与曝光过度滤镜 6.5.2 拼贴、凸出与风滤镜 6.5.3 查找边缘滤镜与照亮边缘滤镜 6.6 滤镜使用实例 习题六 第7章 ImageReady 3.0 7.1 概述 7.1.1 Web像和动画 7.1.2 ImageReady 3.0工作界面 7.2 切割像 7.3 优化像 7.3.1 优化像概述 7.3.2 优化像的一般方法 7.3.3 优化GIF像的颜色 7.4 制作GIF动画 7.4.1 概述 7.4.2 动画制作实例 习题七 第8章 Photoshop的创作技巧与实例 8.1 组合照片 8.2 广告招贴画的设计 8.3 网页像的制作 习题八 第9章 中文CorelDRAW 9.1 CorelDRAW概述 9.1.1 CorelDRAW的功能与特点 9.1.2 CorelDRAW的运行环境与启动 9.1.3 中文CorelDRAW 10的工作界面 9.1.4 中文CorelDRAW 10的标准工具栏 9.1.5 中文CorelDRAW 10的常用工具箱 9.2 CorelDRAW 10的基本操作 9.2.1 文件的基本操作 9.2.2 页面设置 9.2.3 形的导入与导出 9.3 CorelDRAW 10绘基础 9.3.1 基本绘 9.3.2 编辑路径 9.3.3 变换对象 9.3.4 色彩填充 9.3.5 轮廓编辑 9.4 文本处理 9.4.1 用文本工具添加文本 9.4.2 添加段落文本 9.4.3 添加美术字文本 9.4.4 设置文本格式 9.4.5 段落文本与美术字文本相互转换 9.4.6 文本框的显示与隐藏 9.5 形处理技术 9.5.1 位处理 9.5.2 改变位模式 9.5.3 对位进行效果处理 9.6 交互式工具 9.6.1 交互式调和 9.6.2 交互式轮廓 9.6.3 交互式变形 9.6.4 交互式封套 9.6.5 交互式阴影 9.6.6 交互式透明 9.6.7 交互式立体化 9.7 打印输出 9.7.1 打印设置 9.7.2 纸张设置选项 9.7.3 打印预览 9.7.4 打印输出 9.8 制作实例 习题九 第10章 Fireworks 10.1 Fireworks简介 10.1.1 Fireworks MX的新增功能 10.1.2 Fireworks MX的运行环境与启动 10.1.3 Fireworks MX的工作界面 10.1.4 Fireworks MX的工具箱 10.2 Fireworks MX基本绘工具的使用 10.2.1 常用位工具 10.2.2 常用矢量绘工具 10.2.3 选择与编辑对象 10.3 文字工具的使用 10.3.1 输入文本 10.3.2 编辑文本 10.3.3 将文本附加到路径 10.3.4 特效文字 10.4 切片工具的使用 10.4.1 切片工具 10.4.2 多边形切割工具 10.4.3 显示或隐藏切片 10.4.4 给切片设置超级链接 10.4.5 输出切片 10.5 GIF动画的实现 10.5.1 帧面板 10.5.2 动画的制作 10.5.3 导入和导出动画 习题十 参考文献
淘淘片批处理之星是一款操作简单、方便实用的全功能片批处理系统。包括批量格式转换、批量脚本处理、批量文件改名、批量调整尺寸、批量制作缩略、批量压缩JPG、批量合并片、批量添加背景、批量截取片、批量切割片、批量上传文件、创建PDF文件、创建多页TIF、创建电子相册等功能。本软件提供近30种像脚本处理命令(如调整对比度、添加水印等)供您任意组合使用!还可以让您轻松的将任意多的像文件生成一个电子相册,并提供多达150种的动画显示效果,方便您欣赏自己的片,并轻易实现与家人、朋友分享!支持多达11种(BMP,JPG,PNG,GIF,PSD,TIF等)的基本像格式相互转换,如果加上与他们等价的格式,则支持的像类型超过30种。能轻易的生成缩略,调整尺寸、转换格式、添加水印一步到位!向导式的操作方式,轻易上手。所有的批处理操作都可以应用像脚本处理命令,再复杂的操作也可以一步到位。 淘淘片批处理之星能为您做什么?   批量文件改名:除了常规文件改名工具应有的功能外,她还可以只替换包含指定字符串的一部分,支持大小写转换,支持数字、大小写字母作为计数器,支持特殊字符的剔除与替换,支持修改文件的属性,支持修改文件的创建时间和最后修改时间。可以轻松清除或者替换掉文件名中的空格或者其它特殊字符。还提供了灵活的大小写转换机制。   批量添加水印:提供片、文本、系统水印三大水印类别。每一类别都有丰富的选项供您调配水印效果,其中包括但不限于透明度、透明颜色、阴影、排列方式、边界融合。   批量格式转换:不仅可以将一种格式转换至另一种格式,还可以对每一种格式进行细微的调整。支持的基本像格式有:BMP,JPG,PNG,EXIF,GIF,WMF,TGA,PCX,TIFF,PPM等。写入10个常用像基本格式。加上其兼容格式,支持的格式数量达到30个左右。   批量压缩JPG:如果您需要一个120K的JPG文件,只需输入120, 本产品就可以帮您轻松获得。本功能市场上尚无其它产品提供。   批量调整尺寸:你可以快速、高质量的将片的尺寸调整至你需要的尺寸。不管是输出到打印机、还是用来做屏保,或得到一个QQ头像,都仅需要简单的设置就可以了。 仅需简单的设置,就可以轻松的交换像的宽度与高度;像的宽度和高度可以分开设置,且可以指定只增加或减小尺寸。 创建电子相册:用来将片文件编译到一个EXE文件中,并且可以通过执行该EXE文件查看其中的片。选择您需要的文件,启动该功能向导,一个电子相册就诞生了。多达150种超酷的动态片显示效果,定能让您流连忘返。 创建PDF文件: 您可以为单个文件生成单独的PDF文件,也可以将多张片放入一个PDF中。PDF文件具有防复制、防篡改的功能。而且像表现能力也非常的好。现在很多国际际间的合同、合作文件都通过PDF来传递、保存。是传递、保存珍贵像资料 或扫描电子书籍的好选择。 批量制作缩略:您可以方便的将大量的片制作成便于网络上使用的缩略。尺寸调整、格式转换、添加水印一气呵成。需要缩略吗,让她代您完成吧。 批量上传片:片处理好了,要传到网上吗?使用该功能吧。只需选择文件,选择该命令,按向导的提示填入FTP帐号信息。 批量合并片:将多张片合成一张片。不是简单的拼接,诸多选项可以让您轻松完成许多高难度的任务。 批量添加背景:将您的片放到一个大片上。 批量截取片:从您的片中截取出一个小片。 批量切割片:把您的片分成许多小片。每一小片都是一个单独的文件。 批量脚本处理:本产品还提供了20多个脚本命令,来完成一些常用的像处理操作。包括但不限于:片水印、文字水印、系统水印、灰度化、二值化、自动色阶、伽玛校正、高斯模糊、锐化。更加强大的是,您可以设定只有符合某些条件的时,才执行特定的脚本。   调整像分辨率(DPI):像分辨率即像中每单位打印长度显示的像素数目,通常用每英寸点数(DPI)表示,使用此软件您可以轻松地修改片的分辨率,以使打印机打出最好质量的片。 添加片的标题(描述):您只需事先给每张片命好文件名,就可以轻松的把每张片的文件名批量添加到对应片的任意位置作为该片的标题(描述)。   淘淘片批处理之星与其它类似的软件有什么不同?   淘淘片批处理之星是一个整体解决方案,它将诸多单一的功能有机的整合在一起,让您的工作变得轻松。她能自动完成许多繁锁的工作,从而让您有更多的时间和精力专注于业务的发展。   淘淘片批处理之星有哪些特色? 高集成度:集文件管理、处理、合成、切割、传输于一体。是一个真正的片全能批处理软件。 简单易用:所有
王牌标大师的特点:   1.可以制作ico标、cur光标、ani动画光标和gif动画。   2.可以提取exe文件或DLL文件中的精美标进行保存或编辑,也可以抓取屏幕上的画面作为标。   3.可以分解多像的ico或ani文件,并可以保存其中的任意像。   4.标尺寸在8-255像素之间任意选择,并且宽、高可不相同。每种尺寸都有3种颜色方式:16色、256色、24位真彩色。   5.可单个或批量将bmp、jpg、gif、png类型的片(8-255像素)转换为ico标。   6.独创的模糊填充,可方便地将256色或真彩色中与指定颜色相近的颜色转换为同一种颜色,以利于制作透明背景色标。   7.可以在标上添加特技字符,有平面、立体、雕刻、浮雕4种选择。   8.可以通过点击工具栏上的“前一个”、“后一个”按纽浏览当前目录下的标或片(尺寸在8-576像素之间,超出尺寸的不显示)。   9.支持拖放文件,支持从网页上拖放片(尺寸在8-576像素之间)。   10.可以加水印,像水印或文字水印均可,并可调节水印透明度。   11.本程序也是编辑修改尺寸在576像素以内的bmp、jpg片的利器,效果比系统自带的画程序要好。   本软件操作简单直观,免安装,无任何捆绑插件或链接,上传前已用360杀毒检验无病毒,是真正的绿色软件。   本软件的运行环境为:Windows XP/2003/7、1024×768 或以上的分辩率。   本软件运行时,在 \Windows\Sysyem32 文件夹中需要有 MSCOMCTL.OCX、VB6CHS.DLL 两个文件(可在网上下载)。
“nEO iMAGING”〖照片魔术手〗是一个对数码照片画质进行改善及效果处理的软件。 “nEO iMAGING”〖照片魔术手〗具备以下的基本功能和独特之处: √〖反转片效果〗模拟反转片的效果,令照片反差更鲜明,色彩更亮丽 √〖反转片负冲〗模拟反转负冲的效果,色彩诡异而新奇 √〖黑白效果〗模拟多类黑白胶片的效果,在反差、对比方面,和数码相片完全不同 √〖数码补光〗对曝光不足的部位进行后期补光,易用、智能,过渡自然 √〖人像褪黄〗校正某些肤色偏黄的人像数码照片,一键操作,效果明显 √〖组合制作〗可以把多张照片组合排列在一张照片中,适合网络卖家陈列商品 √〖高ISO去噪〗可以去除数码相机高ISO设置时照片中的红绿噪点,并且不影响照片锐度 √〖柔光镜〗模拟柔光镜片,给人像带来朦胧美 √〖包围曝光三合一〗把包围曝光拍摄产生的三张不同EV的照片轻易合成为一张高宽容度的照片 √〖冲印排版〗证件照片排版,一张6寸照片上最多排16张1寸身份证照片,一键完成,极为简便 √〖一指键白平衡〗修正数码照片的色彩偏差,还原自然色彩,可以手工微调--没有调不准的照片 √〖褪色旧相〗模仿老照片的效果,色彩黯淡,怀旧情调 √〖负片效果〗模拟负片的高宽容度,增加相片的高光层次和暗部细节 √〖晚霞渲染〗对天空、朝霞晚霞类明暗跨度较大的相片有特效,色彩艳丽,过渡自然 √〖夜景抑噪〗对夜景、大面积暗部的相片进行抑噪处理,去噪效果显著,且不影响锐度 √〖死点修补〗对CCD上有死点的相机,一次设定以后,就可以修补它拍摄的所有照片上的死点,极方便有效 √〖自动曝光〗智能调整照片的曝光范围,令照片更迎合视觉欣赏 √〖自动白平衡〗智能校正白平衡不准确的照片的色调 √〖色阶、曲线〗多通道调整,操作同PS,高级用户可以随心所欲 √〖其他调整包括〗锐化、摹烬、亮度、对比度、gamma调整、反色、去色、RGB色调调整等等 √〖其他操作包括〗任意缩放、自由旋转、裁剪 √〖自动动作〗可设置一系列动作,一按即自动完成所有操作 √〖所有特效处理,用户可以自由调整参数,以获得满意的效果 √〖批量处理〗支持批量缩放、批量正片等,适合大量冲印前处理 √〖文字签名〗用户可设定3个签名及背景,文字背景还可以任意设定颜色和透明度 √〖片签名〗在照片的任意位置印上自己设计的水印,可设透明度(类似色影无忌的水印效果)和阴影,极富立体感 √〖轻松边框〗轻松制作多种相片边框,如胶卷式、白边式等等 √〖花样边框〗兼容大部分photoWORKS边框,可选择220多种生动有趣的照片边框素材 √ 可以在照片的任意位置上打印EXIF信息内容(如拍摄日期、光圈、快门等) √ 无限次撤消操作和重做操作 √ 照片的EXIF信息不受损 √ 除了编辑,也可以用做照片浏览器,支持鼠标飞轮、键盘热键,一边浏览一边编辑,简单易用 √ 幻灯式浏览照片,可全屏幕查看 √ 可以查看、编辑PSD、GIF、JPG、PNG、PCX、TIF等30多种常见格式的象文件 软件更新内容: √ 优化自动反转片等特效的代码效率,速度有明显提高 √ 重新改写了反转片负冲的特效 √ 改进了高宽容度负片的特效,色彩还原及宽容度均有明显改善 √ 增加了高ISO降噪(红绿噪点)的功能 √ 增加了包围曝光三合一的功能,把三张包围曝光整合为一张高宽容度照片,不影响色彩还原 √ 增加了制作组合的功能 √ 增加了柔光镜效果的模拟 √ 增加了褐色、湖蓝色、紫色的单色效果的特效 √ 修正了批量锐化参数作用不明显的BUG √ 修正了批量文字标签EXIF不更新(如加日期)的BUG √ 增加了滚轮同时按CTRL键缩放片的功能 √ 增加了画面精细显示的选项,以前的显示有点粗糙 √ 优化了一些资源分配释放上的代码,程序效率有提高 √ 修正了裁剪双击后可能发生鼠标被锁的BUG √ 证件照冲印前用户可选择手动裁剪、裁剪时可引入新的照片 √ 白平衡一指键的窗口可以缩放
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; namespace rkk0108.Controllers { /// <summary> /// 片处理 /// http://www.cnblogs.com/wu-jian/ /// /// 吴剑 2011-02-20 创建 /// 吴剑 2012-08-08 修改 /// </summary> public class MyImageHelper { #region 正方型裁剪并缩放 /// <summary> /// 正方型裁剪 /// 以片中心为轴心,截取正方型,然后等比缩放 /// 用于头像处理 /// </summary> /// <remarks>吴剑 2012-08-08</remarks> /// <param name="filePath">片绝对地址</param> /// <param name="fileSaveUrl">缩略存放地址</param> /// <param name="side">指定的边长(正方型)</param> /// <param name="quality">质量(范围0-100)</param> public static void CutForSquare(string filePath, string fileSaveUrl, int side, int quality) { FileStream fileStream = new FileStream(filePath, FileMode.Open); Stream fromFile = fileStream as Stream; //创建目录 string dir = Path.GetDirectoryName(fileSaveUrl); if (!Directory.Exists(dir)) Directory.CreateDirectory(dir); //原始片(获取原始片创建对象,并使用流中嵌入的颜色管理信息) System.Drawing.Image initImage = System.Drawing.Image.FromStream(fromFile, true); //原宽高均小于模版,不作处理,直接保存 if (initImage.Width <= side && initImage.Height <= side) { initImage.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg); } else { //原始片的宽、高 int initWidth = initImage.Width; int initHeight = initImage.Height; //非正方型先裁剪为正方型 if (initWidth != initHeight) { //截对象 System.Drawing.Image pickedImage = null; System.Drawing.Graphics pickedG = null; //宽大于高的横 if (initWidth > initHeight) { //对象实例化 pickedImage = new System.Drawing.Bitmap(initHeight, initHeight); pickedG = System.Drawing.Graphics.FromImage(pickedImage); //设置质量 pickedG.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; pickedG.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //定位 Rectangle fromR = new Rectangle((initWidth - initHeight) / 2, 0, initHeight, initHeight); Rectangle toR = new Rectangle(0, 0, initHeight, initHeight); //画 pickedG.DrawImage(initImage, toR, fromR, System.Drawing.GraphicsUnit.Pixel); //重置宽 initWidth = initHeight; } //高大于宽的竖 else { //对象实例化 pickedImage = new System.Drawing.Bitmap(initWidth, initWidth); pickedG = System.Drawing.Graphics.FromImage(pickedImage); //设置质量 pickedG.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; pickedG.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //定位 Rectangle fromR = new Rectangle(0, (initHeight - initWidth) / 2, initWidth, initWidth); Rectangle toR = new Rectangle(0, 0, initWidth, initWidth); //画 pickedG.DrawImage(initImage, toR, fromR, System.Drawing.GraphicsUnit.Pixel); //重置高 initHeight = initWidth; } //将截对象赋给原 initImage = (System.Drawing.Image)pickedImage.Clone(); //释放截资源 pickedG.Dispose(); pickedImage.Dispose(); } //缩略对象 System.Drawing.Image resultImage = new System.Drawing.Bitmap(side, side); System.Drawing.Graphics resultG = System.Drawing.Graphics.FromImage(resultImage); //设置质量 resultG.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; resultG.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //用指定背景色清空画布 resultG.Clear(Color.White); //绘制缩略 resultG.DrawImage(initImage, new System.Drawing.Rectangle(0, 0, side, side), new System.Drawing.Rectangle(0, 0, initWidth, initHeight), System.Drawing.GraphicsUnit.Pixel); //关键质量控制 //获取系统编码类型数组,包含了jpeg,bmp,png,gif,tiff ImageCodecInfo[] icis = ImageCodecInfo.GetImageEncoders(); ImageCodecInfo ici = null; foreach (ImageCodecInfo i in icis) { if (i.MimeType == "image/jpeg" || i.MimeType == "image/bmp" || i.MimeType == "image/png" || i.MimeType == "image/gif") { ici = i; } } EncoderParameters ep = new EncoderParameters(1); ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)quality); //保存缩略 resultImage.Save(fileSaveUrl, ici, ep); //释放关键质量控制所用资源 ep.Dispose(); //释放缩略资源 resultG.Dispose(); resultImage.Dispose(); //释放原始片资源 initImage.Dispose(); } } #endregion #region 自定义裁剪并缩放 /// <summary> /// 指定长宽裁剪 /// 按模版比例最大范围的裁剪片并缩放至模版尺寸 /// </summary> /// <remarks>吴剑 2012-08-08</remarks> /// <param name="fromFile">原Stream对象</param> /// <param name="fileSaveUrl">保存路径</param> /// <param name="maxWidth">最大宽(单位:px)</param> /// <param name="maxHeight">最大高(单位:px)</param> /// <param name="quality">质量(范围0-100)</param> public static void CutForCustom(System.IO.Stream fromFile, string fileSaveUrl, int maxWidth, int maxHeight, int quality) { //从文件获取原始片,并使用流中嵌入的颜色管理信息 System.Drawing.Image initImage = System.Drawing.Image.FromStream(fromFile, true); //原宽高均小于模版,不作处理,直接保存 if (initImage.Width <= maxWidth && initImage.Height <= maxHeight) { initImage.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg); } else { //模版的宽高比例 double templateRate = (double)maxWidth / maxHeight; //原片的宽高比例 double initRate = (double)initImage.Width / initImage.Height; //原与模版比例相等,直接缩放 if (templateRate == initRate) { //按模版大小生成最终片 System.Drawing.Image templateImage = new System.Drawing.Bitmap(maxWidth, maxHeight); System.Drawing.Graphics templateG = System.Drawing.Graphics.FromImage(templateImage); templateG.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; templateG.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; templateG.Clear(Color.White); templateG.DrawImage(initImage, new System.Drawing.Rectangle(0, 0, maxWidth, maxHeight), new System.Drawing.Rectangle(0, 0, initImage.Width, initImage.Height), System.Drawing.GraphicsUnit.Pixel); templateImage.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg); } //原与模版比例不等,裁剪后缩放 else { //裁剪对象 System.Drawing.Image pickedImage = null; System.Drawing.Graphics pickedG = null; //定位 Rectangle fromR = new Rectangle(0, 0, 0, 0);//原裁剪定位 Rectangle toR = new Rectangle(0, 0, 0, 0);//目标定位 //宽为标准进行裁剪 if (templateRate > initRate) { //裁剪对象实例化 pickedImage = new System.Drawing.Bitmap(initImage.Width, (int)System.Math.Floor(initImage.Width / templateRate)); pickedG = System.Drawing.Graphics.FromImage(pickedImage); //裁剪源定位 fromR.X = 0; fromR.Y = (int)System.Math.Floor((initImage.Height - initImage.Width / templateRate) / 2); fromR.Width = initImage.Width; fromR.Height = (int)System.Math.Floor(initImage.Width / templateRate); //裁剪目标定位 toR.X = 0; toR.Y = 0; toR.Width = initImage.Width; toR.Height = (int)System.Math.Floor(initImage.Width / templateRate); } //高为标准进行裁剪 else { pickedImage = new System.Drawing.Bitmap((int)System.Math.Floor(initImage.Height * templateRate), initImage.Height); pickedG = System.Drawing.Graphics.FromImage(pickedImage); fromR.X = (int)System.Math.Floor((initImage.Width - initImage.Height * templateRate) / 2); fromR.Y = 0; fromR.Width = (int)System.Math.Floor(initImage.Height * templateRate); fromR.Height = initImage.Height; toR.X = 0; toR.Y = 0; toR.Width = (int)System.Math.Floor(initImage.Height * templateRate); toR.Height = initImage.Height; } //设置质量 pickedG.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; pickedG.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //裁剪 pickedG.DrawImage(initImage, toR, fromR, System.Drawing.GraphicsUnit.Pixel); //按模版大小生成最终片 System.Drawing.Image templateImage = new System.Drawing.Bitmap(maxWidth, maxHeight); System.Drawing.Graphics templateG = System.Drawing.Graphics.FromImage(templateImage); templateG.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; templateG.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; templateG.Clear(Color.White); templateG.DrawImage(pickedImage, new System.Drawing.Rectangle(0, 0, maxWidth, maxHeight), new System.Drawing.Rectangle(0, 0, pickedImage.Width, pickedImage.Height), System.Drawing.GraphicsUnit.Pixel); //关键质量控制 //获取系统编码类型数组,包含了jpeg,bmp,png,gif,tiff ImageCodecInfo[] icis = ImageCodecInfo.GetImageEncoders(); ImageCodecInfo ici = null; foreach (ImageCodecInfo i in icis) { if (i.MimeType == "image/jpeg" || i.MimeType == "image/bmp" || i.MimeType == "image/png" || i.MimeType == "image/gif") { ici = i; } } EncoderParameters ep = new EncoderParameters(1); ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)quality); //保存缩略 templateImage.Save(fileSaveUrl, ici, ep); //templateImage.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg); //释放资源 templateG.Dispose(); templateImage.Dispose(); pickedG.Dispose(); pickedImage.Dispose(); } } //释放资源 initImage.Dispose(); } #endregion #region 等比缩放 /// <summary> /// 片等比缩放 /// </summary> /// <remarks>吴剑 2012-08-08</remarks> /// <param name="fromFile">原Stream对象</param> /// <param name="savePath">缩略存放地址</param> /// <param name="targetWidth">指定的最大宽度</param> /// <param name="targetHeight">指定的最大高度</param> /// <param name="watermarkText">水印文字(为""表示不使用水印)</param> /// <param name="watermarkImage">水印片路径(为""表示不使用水印)</param> public static void ZoomAuto(System.IO.Stream fromFile, string savePath, System.Double targetWidth, System.Double targetHeight, string watermarkText, string watermarkImage) { //创建目录 string dir = Path.GetDirectoryName(savePath); if (!Directory.Exists(dir)) Directory.CreateDirectory(dir); //原始片(获取原始片创建对象,并使用流中嵌入的颜色管理信息) System.Drawing.Image initImage = System.Drawing.Image.FromStream(fromFile, true); //原宽高均小于模版,不作处理,直接保存 if (initImage.Width <= targetWidth && initImage.Height <= targetHeight) { //文字水印 if (watermarkText != "") { using (System.Drawing.Graphics gWater = System.Drawing.Graphics.FromImage(initImage)) { System.Drawing.Font fontWater = new Font("黑体", 10); System.Drawing.Brush brushWater = new SolidBrush(Color.White); gWater.DrawString(watermarkText, fontWater, brushWater, 10, 10); gWater.Dispose(); } } //透明片水印 if (watermarkImage != "") { if (File.Exists(watermarkImage)) { //获取水印片 using (System.Drawing.Image wrImage = System.Drawing.Image.FromFile(watermarkImage)) { //水印绘制条件:原始片宽高均大于或等于水印片 if (initImage.Width >= wrImage.Width && initImage.Height >= wrImage.Height) { Graphics gWater = Graphics.FromImage(initImage); //透明属性 ImageAttributes imgAttributes = new ImageAttributes(); ColorMap colorMap = new ColorMap(); colorMap.OldColor = Color.FromArgb(255, 0, 255, 0); colorMap.NewColor = Color.FromArgb(0, 0, 0, 0); ColorMap[] remapTable = { colorMap }; imgAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap); float[][] colorMatrixElements = { new float[] {1.0f, 0.0f, 0.0f, 0.0f, 0.0f}, new float[] {0.0f, 1.0f, 0.0f, 0.0f, 0.0f}, new float[] {0.0f, 0.0f, 1.0f, 0.0f, 0.0f}, new float[] {0.0f, 0.0f, 0.0f, 0.5f, 0.0f},//透明度:0.5 new float[] {0.0f, 0.0f, 0.0f, 0.0f, 1.0f} }; ColorMatrix wmColorMatrix = new ColorMatrix(colorMatrixElements); imgAttributes.SetColorMatrix(wmColorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); gWater.DrawImage(wrImage, new Rectangle(initImage.Width - wrImage.Width, initImage.Height - wrImage.Height, wrImage.Width, wrImage.Height), 0, 0, wrImage.Width, wrImage.Height, GraphicsUnit.Pixel, imgAttributes); gWater.Dispose(); } wrImage.Dispose(); } } } //保存 initImage.Save(savePath, System.Drawing.Imaging.ImageFormat.Jpeg); } else { //缩略宽、高计算 double newWidth = initImage.Width; double newHeight = initImage.Height; //宽大于高或宽等于高(横或正方) if (initImage.Width > initImage.Height || initImage.Width == initImage.Height) { //如果宽大于模版 if (initImage.Width > targetWidth) { //宽按模版,高按比例缩放 newWidth = targetWidth; newHeight = initImage.Height * (targetWidth / initImage.Width); } } //高大于宽(竖) else { //如果高大于模版 if (initImage.Height > targetHeight) { //高按模版,宽按比例缩放 newHeight = targetHeight; newWidth = initImage.Width * (targetHeight / initImage.Height); } } //生成新 //新建一个bmp片 System.Drawing.Image newImage = new System.Drawing.Bitmap((int)newWidth, (int)newHeight); //新建一个画板 System.Drawing.Graphics newG = System.Drawing.Graphics.FromImage(newImage); //设置质量 newG.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; newG.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //置背景色 newG.Clear(Color.White); //画 newG.DrawImage(initImage, new System.Drawing.Rectangle(0, 0, newImage.Width, newImage.Height), new System.Drawing.Rectangle(0, 0, initImage.Width, initImage.Height), System.Drawing.GraphicsUnit.Pixel); //文字水印 if (watermarkText != "") { using (System.Drawing.Graphics gWater = System.Drawing.Graphics.FromImage(newImage)) { System.Drawing.Font fontWater = new Font("宋体", 10); System.Drawing.Brush brushWater = new SolidBrush(Color.White); gWater.DrawString(watermarkText, fontWater, brushWater, 10, 10); gWater.Dispose(); } } //透明片水印 if (watermarkImage != "") { if (File.Exists(watermarkImage)) { //获取水印片 using (System.Drawing.Image wrImage = System.Drawing.Image.FromFile(watermarkImage)) { //水印绘制条件:原始片宽高均大于或等于水印片 if (newImage.Width >= wrImage.Width && newImage.Height >= wrImage.Height) { Graphics gWater = Graphics.FromImage(newImage); //透明属性 ImageAttributes imgAttributes = new ImageAttributes(); ColorMap colorMap = new ColorMap(); colorMap.OldColor = Color.FromArgb(255, 0, 255, 0); colorMap.NewColor = Color.FromArgb(0, 0, 0, 0); ColorMap[] remapTable = { colorMap }; imgAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap); float[][] colorMatrixElements = { new float[] {1.0f, 0.0f, 0.0f, 0.0f, 0.0f}, new float[] {0.0f, 1.0f, 0.0f, 0.0f, 0.0f}, new float[] {0.0f, 0.0f, 1.0f, 0.0f, 0.0f}, new float[] {0.0f, 0.0f, 0.0f, 0.5f, 0.0f},//透明度:0.5 new float[] {0.0f, 0.0f, 0.0f, 0.0f, 1.0f} }; ColorMatrix wmColorMatrix = new ColorMatrix(colorMatrixElements); imgAttributes.SetColorMatrix(wmColorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); gWater.DrawImage(wrImage, new Rectangle(newImage.Width - wrImage.Width, newImage.Height - wrImage.Height, wrImage.Width, wrImage.Height), 0, 0, wrImage.Width, wrImage.Height, GraphicsUnit.Pixel, imgAttributes); gWater.Dispose(); } wrImage.Dispose(); } } } //保存缩略 newImage.Save(savePath, System.Drawing.Imaging.ImageFormat.Jpeg); //释放资源 newG.Dispose(); newImage.Dispose(); initImage.Dispose(); } } #endregion #region 其它 /// <summary> /// 判断文件类型是否为WEB格式片 /// (注:JPG,GIF,BMP,PNG) /// </summary> /// <param name="contentType">HttpPostedFile.ContentType</param> /// <returns></returns> public static bool IsWebImage(string contentType) { if (contentType == "image/pjpeg" || contentType == "image/jpeg" || contentType == "image/gif" || contentType == "image/bmp" || contentType == "image/png") { return true; } else { return false; } } #endregion }//end class }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ClownMagize

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值