Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
5755cf71
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5755cf71
编写于
11月 28, 2012
作者:
B
bae
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7064516: ImageIO.read() fails to load an image
Reviewed-by: jgodinez, prr
上级
db6b1a91
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
96 addition
and
5 deletion
+96
-5
src/share/classes/java/awt/color/ICC_Profile.java
src/share/classes/java/awt/color/ICC_Profile.java
+9
-1
src/share/classes/java/awt/image/ColorConvertOp.java
src/share/classes/java/awt/image/ColorConvertOp.java
+10
-4
test/sun/java2d/cmm/ColorConvertOp/InvalidRenderIntentTest.java
...un/java2d/cmm/ColorConvertOp/InvalidRenderIntentTest.java
+77
-0
未找到文件。
src/share/classes/java/awt/color/ICC_Profile.java
浏览文件 @
5755cf71
...
...
@@ -1435,7 +1435,15 @@ public class ICC_Profile implements Serializable {
int
renderingIntent
=
intFromBigEndian
(
theHeader
,
icHdrRenderingIntent
);
/* set the rendering intent */
return
renderingIntent
;
/* According to ICC spec, only the least-significant 16 bits shall be
* used to encode the rendering intent. The most significant 16 bits
* shall be set to zero. Thus, we are ignoring two most significant
* bytes here.
*
* See http://www.color.org/ICC1v42_2006-05.pdf, section 7.2.15.
*/
return
(
0xffff
&
renderingIntent
);
}
...
...
src/share/classes/java/awt/image/ColorConvertOp.java
浏览文件 @
5755cf71
...
...
@@ -732,10 +732,16 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp {
private
int
getRenderingIntent
(
ICC_Profile
profile
)
{
byte
[]
header
=
profile
.
getData
(
ICC_Profile
.
icSigHead
);
int
index
=
ICC_Profile
.
icHdrRenderingIntent
;
return
(((
header
[
index
]
&
0xff
)
<<
24
)
|
((
header
[
index
+
1
]
&
0xff
)
<<
16
)
|
((
header
[
index
+
2
]
&
0xff
)
<<
8
)
|
(
header
[
index
+
3
]
&
0xff
));
/* According to ICC spec, only the least-significant 16 bits shall be
* used to encode the rendering intent. The most significant 16 bits
* shall be set to zero. Thus, we are ignoring two most significant
* bytes here.
*
* See http://www.color.org/ICC1v42_2006-05.pdf, section 7.2.15.
*/
return
((
header
[
index
+
2
]
&
0xff
)
<<
8
)
|
(
header
[
index
+
3
]
&
0xff
);
}
/**
...
...
test/sun/java2d/cmm/ColorConvertOp/InvalidRenderIntentTest.java
0 → 100644
浏览文件 @
5755cf71
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* @test
* @bug 7064516
* @summary Test verifies that incorrect profile rendering intent
* does not cause an failure of color conversion op.
* @run main InvalidRenderIntentTest
*/
import
java.awt.color.CMMException
;
import
java.awt.color.ColorSpace
;
import
java.awt.color.ICC_ColorSpace
;
import
java.awt.color.ICC_Profile
;
import
java.awt.image.ColorConvertOp
;
import
java.awt.image.BufferedImage
;
import
static
java
.
awt
.
color
.
ColorSpace
.
CS_sRGB
;
import
static
java
.
awt
.
image
.
BufferedImage
.
TYPE_3BYTE_BGR
;
public
class
InvalidRenderIntentTest
{
public
static
void
main
(
String
[]
args
)
{
ICC_Profile
pSRGB
=
ICC_Profile
.
getInstance
(
CS_sRGB
);
byte
[]
raw_data
=
pSRGB
.
getData
();
setRenderingIntent
(
0x1000000
,
raw_data
);
ICC_Profile
p
=
ICC_Profile
.
getInstance
(
raw_data
);
ICC_ColorSpace
cs
=
new
ICC_ColorSpace
(
p
);
// perfrom test color conversion
ColorConvertOp
op
=
new
ColorConvertOp
(
cs
,
ColorSpace
.
getInstance
(
CS_sRGB
),
null
);
BufferedImage
src
=
new
BufferedImage
(
1
,
1
,
TYPE_3BYTE_BGR
);
BufferedImage
dst
=
new
BufferedImage
(
1
,
1
,
TYPE_3BYTE_BGR
);
try
{
op
.
filter
(
src
.
getRaster
(),
dst
.
getRaster
());
}
catch
(
CMMException
e
)
{
throw
new
RuntimeException
(
"Test failed."
,
e
);
}
System
.
out
.
println
(
"Test passed."
);
}
private
static
void
setRenderingIntent
(
int
intent
,
byte
[]
data
)
{
final
int
pos
=
ICC_Profile
.
icHdrRenderingIntent
;
data
[
pos
+
0
]
=
(
byte
)
(
0xff
&
(
intent
>>
24
));
data
[
pos
+
1
]
=
(
byte
)
(
0xff
&
(
intent
>>
16
));
data
[
pos
+
2
]
=
(
byte
)
(
0xff
&
(
intent
>>
8
));
data
[
pos
+
3
]
=
(
byte
)
(
0xff
&
(
intent
));
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录