`
boendev
  • 浏览: 242849 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

图片缩略图,CMYK图片变红问题解决

阅读更多

 

在互联网图片上传,我们需要过滤图片里的脚本,保证系统安全

    但是如果使用JVM的ImageIO进行重写过滤,CMYK色彩的图片,进行重写后图片会有一层模糊的红色。

 

如何解决????

方法1 :使用 ImageMagic ,图片效果清晰,而且不会出现重写CMYK色彩模式图片变色,同时也能过滤掉图片里的不安全代码。。。

方法2 ; 使用graphicsmagic + nginx lua module 实时生成缩略图

 

RGB色彩模式: 
颜色属性:
简单的说就是自然界万物的颜色(你就先这么理解吧)。
RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一.而与我们电脑相关的地方,就是目前的显示器大都是采用了RGB颜色标准,这就是为什么它对我们来说这么重要了。

在显示器上,是通过电子枪打在屏幕的红、绿、蓝三色发光极上来产生色彩的,目前的电脑一般都能显示32位颜色,约有一百万种以上的颜色。如果说它所显示的颜色还不能完全吻合自然界中的某种色彩的话,那已经几乎是我们肉眼所不能分辩出来的了。 
电脑设计运用范围:

显示器显示、RGB色打印、RGB色喷画等。 
独特之处:

色彩丰富饱满,但不能进行普通的分色印刷。

混色设定(加法混合):RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好象有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和(两盏灯的亮度嘛!),越混合亮度越高,即加法混合。有色光可被无色光冲淡并变亮。如蓝色光与白光相遇,结果是产生更加明亮的浅蓝色光。知道它的混合原理后,在软件中设定颜色就容易理解了。红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:越叠加越明亮。红、绿、蓝三个颜色通道每种色各分为255阶亮度,在0最弱——是关掉的,而在255最亮。当三色数值相同时为无色彩的灰度色,而三色都为255时为最亮的白色,都为0时为黑色。

CMYK色彩模式

颜色属性:
简单说就是专门用来印刷的颜色。
它是另一种专门针对印刷业设定的颜色标准,是通过对青(C)、洋红(M)、黄(Y)、黑(K)四个颜色变化以及它们相互之间的叠加来得到各种颜色的,CMYK即是代表青、洋红、黄、黑四种印刷专用的油墨颜色,也是Photoshop软件中四个通道的颜色。
具体到印刷上,是通过控制青、洋红、黄、黑四色油墨在纸张上的相叠印刷来产生色彩的,它的颜色种数少于RGB色。 

电脑设计运用范围:
四色印刷、四色打印等。 
独特之处:

色彩不如RGB色丰富饱满,在PHOTOSHOP中运行速度会比RGB色慢,而且部分功能将无法使用,由于颜色种数没有RGB色多,当图像由RGB色转为CMYK色后颜色会有部分损失(从CMYK转到RGB则没有损失),但它也是唯一一种能用来进行四色分色印刷的颜色标准。 

混色设定(减法混合):
CMYK是以对光线的反射原理来设计定的,所以它的混合方式刚好与RGB相反,是"减法混合"

当它们的色彩相互叠合的时候,色彩相混,而亮度却会减低。为什么会这样呢?来看看光线是怎样通过印刷品而进入眼睛的,就会清楚了.

把四种不同的油墨相叠地印在白纸上后,由于油墨是有透明度的,大部分光线第一次会透过油墨射向纸张,而白纸的反光率是较高的,大部分光线经白纸反射后会第二次穿过油墨,然后射向眼睛,此时光线对油墨的透射就产生了色彩效果。
实际上这时我们就好象在看着多个重叠的有色玻璃一般,光线多穿过一层,亮度就降低一些,而颜色也会相互混合一次.
青、洋红、黄三色印墨的叠加情况,中心三色的叠加区为黑色,减法混合的特点:越叠加越暗。
 
在软件中,青、洋红、黄、黑四个通道颜色每种各按百分率记算,100%时为最深,0%时最浅,而黑色和颜色混合几乎没有太大关系,它的存在大多是为了方便地调节颜色的明暗亮度(而且在印刷中,单黑的使用机会是很多的)。

与加法混合一样,三色数值相同时为无色彩的灰度色.

另视觉全色:

HSB色彩空间基于视觉感官原理,根据视觉的感知将色彩分成色度(Hue),饱合度(Saturation),亮度(Brightness)三个元素,HSB有多种量化方式,这里采用常用较常用的一种。

 

 

分享到:
评论
1 楼 lkl 2015-06-08  
非常清晰,写的很好

相关推荐

    java 图片生成缩略图

    "java 图片生成缩略图" Java 图片生成缩略图是Java程序开发中一个常见的需求,通过将图片以缩略图形式展示,可以提高用户体验和网站性能。在本文中,我们将介绍使用Java生成缩略图的方法。 缩略图生成方法 在 ...

    图片缩略图展示图片缩略图展示图片缩略图展示

    图片缩略图在IT行业中是图像处理和网页设计的关键元素,尤其在展示大量图片时,如照片库、电商网站或社交媒体平台。它们提供了一个高效且直观的方式,让用户快速浏览和预览图片内容,而无需加载完整大小的图像,从而...

    TGA图片缩略图补丁

    而"TGA图片缩略图补丁"就是针对这个问题提供解决方案,通过解析TGA文件的头部信息,生成合适的缩略图,确保通道图的正确显示。 安装此补丁后,用户无需再依赖特定的图像编辑软件来查看TGA文件。在资源管理器中,只...

    QListWidget显示图片缩略图

    然而,通过一些技巧和扩展,我们也可以让`QListWidget`显示图片,甚至实现图片的缩略图显示。下面将详细解释如何在`QListWidget`中实现这个功能。 首先,我们要明白`QListWidget`的基本用法。它是一个基于模型/视图...

    苹果cms采集电影没有缩略图解决视频图片显示失败问题

    在使用苹果CMS进行电影资源采集时,可能会遇到一个问题,即采集的电影资源没有缩略图,导致视频的图片显示失败,这无疑会影响用户的浏览体验。要解决这个问题,我们可以采取一些技术手段来优化。 首先,我们要了解...

    17种基于jquery的图片缩略图列表

    1. **基本缩略图滑动**:最基础的实现方式是通过jQuery来改变图片容器的宽度,使图片在滑动效果下展示为缩略图。这种方法简单易懂,适合初学者。 2. **响应式缩略图**:随着移动设备的普及,响应式设计成为必须。...

    Qt 缩略图列表显示图片

    在处理图像应用时,我们可能需要在一个列表中显示图片的缩略图,这在设计用户界面时能够提供更好的视觉体验。本篇文章将深入探讨如何使用Qt的QListWidget来实现缩略图列表显示图片的功能。 首先,我们需要理解...

    java 上传图片生成缩略图

    ### Java 上传图片生成缩略图的知识点解析 在现代Web开发中,处理图像是一项常见的需求,尤其是在涉及用户上传图片的应用场景中。本篇文章将基于提供的代码片段详细讲解如何使用Java来实现上传图片并自动生成缩略图...

    上传图片(缩略图)

    "上传图片(缩略图)"这个标题和描述提示我们,这里涉及的技术点主要是图片上传以及生成缩略图的过程。下面我们将详细探讨这两个核心知识点。 1. 图片上传: - **表单提交**:在HTML中,通常使用`...

    使用CSS制作图片缩略图

    在网页设计中,图片缩略图是一种非常常见的元素,它能有效地展示一组图片,节省空间,提高用户体验。本文将深入探讨如何使用CSS技术来创建XHTML网页上的图片缩略图,我们将不涉及具体的图片内容,而是关注样式和布局...

    如何在Delphi中生成图片缩略图的例子.rar

    在Delphi编程环境中,生成图片缩略图是一项常见的任务,特别是在开发图像管理、网页设计或者多媒体应用时。本文将详细讲解如何使用Delphi来创建图片缩略图,并以提供的源代码为例进行解析。 首先,我们需要了解...

    html5图片上传本地生成缩略图预览

    在图片预览和缩略图生成中,我们可以利用Canvas的drawImage方法将图片加载到Canvas上,然后通过调整Canvas的宽度和高度来生成缩略图。 3. **Data URL**:Data URL是一种内联资源表示方式,可以直接在页面中嵌入图像...

    .net 上传图片缩略图

    在.NET框架中,生成图片缩略图是一项常见的任务,尤其在网页开发或者图像处理应用中。这个场景描述了如何利用.NET技术将原始图片按照宽度或高度的比例进行压缩,生成一个符合特定尺寸要求的小尺寸图片,即所谓的...

    ANDROID 获取最近的相片的缩略图

    通过研究和理解这个代码,开发者可以更好地掌握如何在Android应用中正确处理图片缩略图的获取和展示,同时解决可能出现的问题。 总之,获取Android设备上的最近相片缩略图需要正确查询MediaStore,按时间排序,并...

    基于Springmvc的上传图片并生成缩略图

    在本文中,我们将深入探讨如何基于Springmvc实现图片上传及生成缩略图的功能。Springmvc是Spring框架的一个重要模块,用于构建MVC模式的Web应用,它提供了强大的数据绑定、模型映射、视图渲染等功能,是Java开发中的...

    D7浏览图片缩略图源码

    这个标题“D7浏览图片缩略图源码”暗示我们讨论的是在Drupal 7环境中实现图片浏览功能,特别是涉及到缩略图展示以及点击缩略图后显示全尺寸图片的交互设计。下面我们将深入探讨这一主题,包括Drupal 7的基础知识、...

    html5移动端图片上传本地生成缩略图预览(单图上传)

    预览图片后,我们可能还需要生成缩略图,以减小数据传输量或适应不同的展示尺寸。这里我们可以利用HTML5的Canvas元素。 1. 创建一个canvas元素,并获取其2D渲染上下文。 ```javascript var canvas = document....

    使用CSS属性制作图片HTML缩略图

    在网页设计中,图片缩略图是不可或缺的一部分,它们用于预览大图,节省空间,提升用户体验。本教程将详细讲解如何使用CSS属性来创建HTML中的图片缩略图,不涉及图片内容本身。 首先,我们需要在HTML文件中插入图片...

    上传文件(图片缩略图上传带进度显示)

    "上传文件(图片缩略图上传带进度显示)"这一主题聚焦于如何在上传过程中提供友好的用户体验,包括实时的进度指示以及预览图片的缩略图功能。下面将详细探讨这一领域的关键知识点。 首先,大文件上传通常涉及到分块...

    上传图片并生成高清晰缩略图

    ### 上传图片并生成高清晰缩略图 #### 背景与概述 在Web开发领域,特别是ASP.NET应用程序中,上传图片并自动生成高质量缩略图是一项常见且实用的功能。这种需求通常出现在用户头像上传、产品图片展示等场景中。...

Global site tag (gtag.js) - Google Analytics