在欧易交易所官网购买。
欧易交易所OKX是数字货币交易平台之一,在这个平台中有着各种各样的数字货币,其中就包括我们比较熟悉的FIL币。是一个安全性较高,公认性较强的数字货币交易平台。
FIL币于2020年10月15日发行,英文名称为Filecoin,是IPFS上的一个代币,而Filecoin就是通过贡献闲置的硬盘来作为奖励矿工的一种方式,并且FIL币还是灰度信托基金的产品之一,属于BscScan和Hecochain公链。
高中英语合集百度网盘下载
链接:https://panbaiducom/s/1znmI8mJTas01m1m03zCRfQ
pwd=1234提取码:1234
简介:高中英语优质资料下载,包括:试题试卷、课件、教材、视频、各大名师网校合集。
1如果是的尺寸太大,那就在PS中打开,alt+I+I,把宽度缩到适合的大小,单位注意,用cm。保存为tif,在飞腾里重新插入一下。
2如果是的大小太大,那就在PS中打开,alt+I+I,把的分辨率缩到300或350dpi,注意宽度要适合,保存为tif,在飞腾里重新插入一下。
可以LSB隐写分析
任意比例的LSB嵌入率分析
LSB隐写分析
基于视觉攻击的LSB隐写分析
分解灰度图
抽取最低位平面
任意比例嵌入率的分析
基于卡方检验的LSB隐写分析
原始图像与载密图像的灰度直方图对比
卡方检测分析
任意比例嵌入率的卡方检测分析
基于视觉攻击的LSB隐写分析
视觉攻击是指利用人的视觉感知特性来判断载密图像异常变化。LSB替换选用最低位平面来嵌入秘密信息,最低位平面对图像的视觉效果影响最轻微。因此,可以从图像的最低有效位组成的图像中判断是否有隐藏消息。图像的LSB和最高位以及其他点有一定的关系,特别是对自然拍摄的BMP图像。但是在选择嵌入位置时,一般都同等对待载体中所有样本点,忽略了载体本身存在的空间相关性,就能够被观察出嵌入的痕迹。
分解灰度图
对图像进行位平面分解:位平面是指依次取出每个像素点对应位的值组成一个位平面。一副灰度图像中每个像素点的灰度值可以由8个二进制来表示,因此可以分解成8个位平面。举例,假设图像有两个像素点,灰度值分别为1和3,其对应的二进制为分别为00000001和00000011,那么该图像分解成的8个位平面以此为00、00、00、00、00、00、01、11。每个位平面均为一个二值图,即像素点的值非0即1。
bitplanek = bitget(A,k); %获取A的第k位
clc
clear
A = imread("lennahidebmp");
figure(1);
subplot(3,3,1);
imshow(A);
title('原始图像');
[h,w] = size(A);
for k=1:8
tmp = bitget(A,k);
subplot(3,3,k+1);
imshow(tmp,[]);
B = num2str(k+1);
title('位平面%s',B);
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
在这里插入描述
抽取最低位平面
分别抽取载密图像和原图像的最低位平面,进行对比
lsbbitplanek = bitget(A,1); %获取A的第1位
clc
clear
A = imread('lena_256tiff');
[h,w] = size(A);
figure();
tmp = bitget(A,1);
subplot(1,2,1);
imshow(tmp,[]);
title('原始图像的最低位平面');
B = imread('lsbwatermarkedlenatiff');
[h,w] = size(B);
tmp1 = bitget(B,1);
subplot(1,2,2);
imshow(tmp1,[]);
title('载密图像的最低位平面');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
在这里插入描述
任意比例嵌入率的分析
在不同嵌入率10%、30%、50%、70%下进行分析对比
function [ S,P_value ] = lsbplanekunit( image,rate )
% 函数功能:先对图像以嵌入率为rate进行顺序LSB嵌入,然后进行视觉隐写分析
% 输入参数:input是原始图像,rate是嵌入率,取值在[0,1]
% 调用例子:[ S,P_value ] = lsbplanekunit( 'livingroomtif',05 )
%读一幅图像
cover=imread(image);
%cover=cover(:,:,1);
ste_cover=double(cover);
[m,n]=size(ste_cover);
%依据rate计算秘密信息位的长度,并生成秘密信息msg
msglen=floor(mnrate);
msg= rand(1,msglen); %这里可以直接用randint,如果机器上有的话
for i=1:msglen
if msg(i)>=05
msg(i)=1;
else
msg(i)=0;
end
end
%使用lsb隐写算法嵌入秘密信息
p=1;
for f2=1:n
for f1=1:m
if p>=msglen
break;
end
ste_cover(f1,f2)=ste_cover(f1,f2)-mod(ste_cover(f1,f2),2)+msg(1,p);
p=p+1;
end
if p==msglen
break;
end
end
A = imread(image);
[h,w] = size(A);
figure();
tmp = bitget(A,1);
subplot(1,2,1);
imshow(tmp,[]);
title('原始图像的最低位平面');
B = ste_cover;
[h,w] = size(B);
tmp1 = bitget(B,1);
subplot(1,2,2);
imshow(tmp1,[]);
title('载密图像的最低位平面');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
在这里插入描述
基于卡方检验的LSB隐写分析
chi-square分析又称卡方分析。普通图像像素值的分布情况由于LSB嵌入会发生变化。使用LSB嵌入水印时,如果像素值最低位比特与水印比特相同,那么保留该像素值不做变化;否则,使用水印比特位代替像素值的最低比特位。例如,水印比特位为1时,若像素值为(128)D=(1000 0000)B,则将像素值变为(129)D=(1000 0001)B;若像素值为(17)D=(0001 0001)B,则不改变该像素值。
分析该处理过程,像素值会由2i变为2i+1,而不会变为2i-1;或者由2i+1变为2i,而不会变为2i+2。即像素值在值对2i和2i+1之间翻转。因此,若用hi表示像素值为i的像素个数,那么,使用LSB嵌入后,h2i和h2i+1会比较接近,远小于普通图像中h2i和h2i+1的距离。
令
在这里插入描述
该值在嵌入前后不发生变化,当较大时,根据中心极限定理,下式成立。
在这里插入描述
即在这里插入描述 服从标准正态分布。因此,统计量 服从自由度为k的开方分布。k为h2i和h2i+1组成的数字对,为0时不记在内。
在这里插入描述
由于在这里插入描述 越小,表明h2i和h2i+1越接近,因此也意味着图像含水印的概率也越高。可以利用卡方分布的概率密度函数计算载体被隐写的概率:
在这里插入描述
卡方分析不仅能够对隐写率做出分析,能且能够判断嵌入位置。但如果隐写率较低,或者嵌入位置随机分布,卡方分析就难以奏效。
原始图像与载密图像的灰度直方图对比
对原始图像和载密图像进行灰度直方图对比,选取部分像素值,观察h2i和h2i+1的在嵌入前和嵌入后的差值情况
n = hist(A(:), 0:255)’; %获取A的像素值分布,n为像素值统计矩阵,索引为像素值,值为该像素值的个数
stem(a:b,n(a+1:b+1)); %画出直方图,a:b为像素值区间
figure(3);
I1 = imread('lena_256tiff');
A = I1(:,:,1);
subplot(1,2,1);
[m,n]=size(A);
[counts,x] = imhist(A,32);
counts = counts/(mn);
stem(x,counts);
I2 = imread('lsbwatermarkedlenatiff');
B = I2(:,:,1);
subplot(1,2,2);
[a,b]=size(B);
[counts,y] = imhist(B,32);
counts = counts/(ab);
stem(y,counts);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
在这里插入描述
卡方检测分析
依次取图像的部分比例区域,逐渐扩大,如从10%开始,每次加1%,直到100%
对这部分区域进行卡方检测,编写卡方检测函数
统计h2i和h2i+1 ,计算
计算在这里插入描述
计算自由度k下的密度函数,得到隐写概率
p = 1 - chi2cdf(r, k - 1) %p为隐写概率,chi2cdf(r, k - 1)为卡方分布的概率密度函数
绘制分析区域比例和隐写概率曲线图
plot(x, p(1, :), ‘k-’, x, p(2, :), ‘r-’, x, p(3, :), ‘b–’, x, p(4, :), ‘g–’, x, p(5, :), ‘c–’, x, p(8, :), ‘y–’); %绘制曲线函数,x为区域比例,p为不同嵌入率下的隐写概率
axis([10 100 0 12]); %坐标轴
legend(‘0%’, ‘10%’, ‘20%’, ‘30%’, ‘40%’, ‘70%’); %图例
xlabel(‘Size of sample(%)’); %横坐标轴说明
ylabel(‘Probability of embedding’); %纵坐标轴说明
clc
clear
I = imread('lena512bmp');
sz = size(I);
for k = 1:11
rt = double(k-1)/10;
row = round(sz(1)rt);
fprintf(1,'rt:%d\n',row);
col = sz(2);
msg = randsrc(row,col,[0 1;05 05]);
stg =I;
stg(1:row,1:col) = bitset(stg(1:row,1:col),1,msg);
imwrite(stg,sprintf('stg_%dbmp',floor(100rt)));
i =1;
for rto = 01:001:1
row = round(sz(1)rto);
col = round(sz(2)rto);
p(k,i) = LsbPrb(stg(1:row,1:col));
i=i+1;
end;
end;
x = round([01:001:1]sz(1))/sz(1)100;
figure;
plot(x,p(1,:),'k-',x,p(2,:),'r-',x,p(3,:),'b--',x,p(4,:),'g--',x,p(5,:),'c--',x,p(8,:),'y--');
axis([10 100 0 12]);
legend('0%','10%','20%','30%','40%','70%');
xlabel('Size of sample(%)');
ylabel('Probability of embedding');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
其中的LsbPrbm代码如下
function p=LsbPrb(x)
n=sum(hist(x,[0:255]),2);
h2i=n([3:2:255]);
h2is=(h2i+n([4:2:256]))/2;
filter=(h2is~=0);
k=sum(filter);
idx=zeros(1,k);
for i=1:127
if filter(i)==1
idx(sum(filter(1:i)))=i;
end;
end;
r=sum(((h2i(idx)-h2is(idx)) ^2)/(h2is(idx)));
p=1-chi2cdf(r,k-1);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
在这里插入描述
任意比例嵌入率的卡方检测分析
在不同嵌入率0%、10%、30%、50%、70%下进行检测,分析检测的结果
function [ S,P_value ] = kafangunit( image,rate )
% 函数功能:先对图像以嵌入率为rate进行顺序LSB嵌入,然后进行卡方隐写分析
% 输入参数:input是原始图像,rate是嵌入率,取值在[0,1]
% 输出参数:S存放卡方统计值,P保存对应的p值,即观察值与估计值相似程度的概率
% 调用例子:[ S,P_value ] = kafang( 'livingroomtif',05 )
%读一幅图像
cover=imread(image);
%cover=cover(:,:,1);
ste_cover=double(cover);
[m,n]=size(ste_cover);
%依据rate计算秘密信息位的长度,并生成秘密信息msg
msglen=floor(mnrate);
msg= rand(1,msglen); %这里可以直接用randint,如果机器上有的话
for i=1:msglen
if msg(i)>=05
msg(i)=1;
else
msg(i)=0;
end
end
%使用lsb隐写算法嵌入秘密信息
p=1;
for f2=1:n
for f1=1:m
if p>=msglen
break;
end
ste_cover(f1,f2)=ste_cover(f1,f2)-mod(ste_cover(f1,f2),2)+msg(1,p);
p=p+1;
end
if p==msglen
break;
end
end
I = ste_cover
sz = size(I);
for k = 1:11
rt = double(k-1)/10;
row = round(sz(1)rt);
fprintf(1,'rt:%d\n',row);
col = sz(2);
msg = randsrc(row,col,[0 1;05 05]);
stg =I;
stg(1:row,1:col) = bitset(stg(1:row,1:col),1,msg);
imwrite(stg,sprintf('stg_%dbmp',floor(100rt)));
i =1;
for rto = 01:001:1
row = round(sz(1)rto);
col = round(sz(2)rto);
p(k,i) = LsbPrb(stg(1:row,1:col));
i=i+1;
end;
end;
x = round([01:001:1]sz(1))/sz(1)100;
figure;
plot(x,p(1,:),'k-',x,p(2,:),'r-',x,p(3,:),'b--',x,p(4,:),'g--',x,p(5,:),'c--',x,p(8,:),'y--');
axis([10 100 0 12]);
legend('0%','10%','20%','30%','40%','70%');
xlabel('Size of sample(%)');
ylabel('Probability of embedding');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
在这里插入描述
参考文章
https://blogcsdnnet/HizT_1999/article/details/106951364utm_medium=distributepc_relevantnone-task-blog-baidujs_baidulandingword-0&spm=1001210130014242
参考代码
https://githubcom/kalpatian/information_hidding
编辑本段歌词(Ne-Yo)
Want
to,
but
I
can't
help
it,
我不能自拔,我很想,
I
love
the
way
it
feels,
我很喜欢这样的感觉,
It's
got
me
stuck
between
my
fantasy
And
what
is
real
它让我在虚幻与真实之间徘徊,
I
need
it
when
I
want
it,
我需要她时我想要她,
I
want
it
when
I
don't
不想她的时候我还是需要她,
Tell
myself
I'll
stop
everyday
Knowin
that
I
won't
我知道我每天都不停的想她,
Hook:
I
got
a
problem
and
I
[Don't
know
what
to
do
about
it]
Even
if
I
did,
我有一个问题,并且我(不知道怎么办)
I
don't
if
I
would
quit,
甚至我不知道我是否应该退出,
But
I
doubt
it
I'm
taken
by
the
thought
of
it,
但是我一点都不怀疑我所需要的就是她。
And
I
know
that
much
is
true
我知道这是非常真实的,
Baby,
you
have
become
my
addiction
宝贝儿,我已经深深迷上了你,
I'm
so
strung
out
on
you
I
can
barely
move,
but
I
like
it
你太让我意乱情迷了,我早就不能自拔,但是我喜欢这样。
Chorus:
And
it's
all
because
of
you,
And
it's
all
because
of
you,
And
it's
all
because
of
you
And
it's
all
because这都是因为你(因为你),,这都是因为你(因为你),这都是因为你(因为你)
,这都是因为你,因为你……
Never
givin'
up,
She's
the
sweetest
drugs
她是最甜美的毒药。
Verse
2:
Think
of
it
every
second
我每时每刻都在想这些,
I'm
thinkin
nothin
but,
这让我做不了其他事
Only
concern
is
the
next
time,
我只关心下一刻我能够得到什么。
I'm
gon
get
me
some
Know
I
should
stay
away
from,
Cuz
it's
no
good
for
me
这样不好,我应该远离的,
I
try
and
try
but
my
obsession
Won't
let
me
leave
但是我再怎么努力,我还是对她念念不忘。
Hook:
I
got
a
problem
and
I
[Don't
know
what
to
do
about
it]
Even
if
I
did,
我有一个问题,并且我(不知道怎么办)
,甚至我不知道我是否应该退出,
I
don't
if
I
would
quit,
But
I
doubt
it
I'm
taken
by
the
thought
of
it,
And
I
know
that
much
is
true
但是我一点都不怀疑我所需要的就是她。我知道这是非常真实的,
Baby,
you
have
become
my
addiction
宝贝儿,我已经深深迷上了你,I'm
so
strung
out
on
you
I
can
barely
move,
but
I
like
it
你太让我意乱情迷了,我早就不能自拔,但是我喜欢这样。
Chorus:
And
it's
all
because
of
you,
And
it's
all
because
of
you,
And
it's
all
because
of
you
And
it's
all
because
这都是因为你(因为你),,这都是因为你(因为你),
这都是因为你(因为你)
,这都是因为你,因为你……
Never
givin'
up,
She's
the
sweetest
touch
永远也找不到像她这样可人儿了。
Verse
3:
Ain't
no
doubt,
so
strung
out,
毫无疑问我应该在你身边,
Ain't
no
doubt,
so
strung
out,
毫无疑问我应该在你身边,
Over
you,
over
you,
over
you
在你身边,
Ooooo
Because
of
you,
因为你,
And
it's
all
because
of
you,
这全是因为你,
Never
givin'
up,
She's
the
sweetest
drugs,
she's
the
sweetest
drugs
她是最甜美的毒药
IFD是TIF图中最重要的数据结构,它包含了一个TIF文件中最重要的信息,一个TIF图可能有多个IFD,这说明文件中有多个图像,每个IFD标识1个图像的基本属性。 IFD结构中包含了三类成员,Directory Entry Count指出该结构里面有多少个目录入口;接下来就是N个线性排列的DE序列,数量不定(这就是 为什么称TIF格式文件为可扩充标记的文件,甚至用户可以添加自定义的标记属性),每个DE标识了图像的某一个属性;最后就是一个偏移量, 标识下一个文件目录相对于文件开始处的位置,当然,如果该TIF文件只包含了一幅图像,那么就只有一个IFD,显然,这个偏移量就等于0;
现在大致知道 当 标识 为256的 目录入口(DE)中的变量为图象的宽
当 标识 为257的 目录入口(DE)中的变量为图象的高
下面一段代码是VC实现TIF->BMP的源程序的一部分
对其中的一些类和方法不是很清楚。(高手们帮忙看看怎么转到bcb中 ^_^ )
(需要用到我在上面帖的那两个结构体)
2、添加TiffStructh文件,定义IFH和DE结构(参考前面的结构描述),用来接收读TIF文件的信息。
#ifndef _TIFFSTRUCT_
#define _TIFFSTRUCT_
typedef struct tagIMAGEFILEHEADER
{
WORD byteOrder;
WORD version;
DWORD offsetToIFD;
}IFH;
typedef struct tagDIRECTORYENTRY
{
WORD tag;
WORD type;
DWORD length;
DWORD valueOffset;
}DE;
#endif
3、在文档类中添加4个公有变量,并将其初始化为0。在TiffTestDoccpp中#include "TiffStructh"
DWORD m_dwBmSize; //图象的数据部分的大小
CPalette m_palDIB; //BMP图象调色板
HANDLE m_hDIB; //BMP图象内存块句柄
CSize m_sizeDoc; //图象的长和宽
4、在文档类的OnOpenDocument函数中定义局部工具变量并读文件
DWORD dwFileLength = 0;
CString strTemp = _T("");
WORD wDECount = 0;
BYTE pDIB = NULL;
int i = 0;
IFH ifh;
ZeroMemory(&ifh, sizeof(IFH));
CFile file;
CFileException fe;
if(0 == fileOpen(lpszPathName, CFile::modeRead | CFile::shareDenyWrite, &fe))
{
AfxMessageBox("打开文件失败");
return FALSE;
}
dwFileLength = fileGetLength();
//读IFH文件头
if(sizeof(IFH) != fileRead(&ifh, sizeof(IFH)))
{
AfxMessageBox("读TIF文件头失败");
return FALSE;
}
Forgive,
sounds
good
宽恕其实是一种痛楚
Forget,
I'm
not
sure
I
could
又不敢确定我能去淡忘
They
say
time
heals
everything,
人们说时间能愈合一切
But
I'm
still
waiting
我却还在痴痴等待
I'm
through,
with
doubt,
始终不敢去确信
There's
nothing
left
for
me
to
figure
out,
还剩下什么让我去捉摸
I've
paid
a
price,
and
i'll
keep
paying
为何付出了代价仍旧要继续
I'm
not
ready
to
make
nice,
还没来得及粉饰优雅
I'm
not
ready
to
back
down,
还没来得及学会放弃
I'm
still
mad
as
hell
我还痴狂一如过往
And
I
don't
have
time
而我已经无暇自顾
To
go
round
and
round
and
round
仅仅在原地转圈圈
It's
too
late
to
make
it
right
爱太深哪来得及改
I
probably
wouldn't
if
I
could
力能所及,心更难听命
Cause
I'm
mad
as
hell
只因为,我还痴狂一如过往
Can't
bring
myself
to
do
what
it
is
You
think
I
should
即使如你所愿,又怎能忍心
勉强自己去选择那样的路
I
know
you
said
知道有什么你想要说
Why
can't
you
just
get
over
it,
但为何你不能自己面对去淡忘
It
turned
my
whole
world
around
我的世界已经颠覆
and
I
kind
of
like
it
我却已爱上这几许
I
made
by
bed,
and
I
sleep
like
a
baby,
在床边像孩子一样入睡
With
no
regrets
and
I
don't
mind
saying,
不带一丝懊悔,也不介意这样去说
It's
a
sad
sad
story
这是一个过度伤感的故事
That
a
mother
will
teach
her
daughter
也许有个母亲会这样讲给她的女儿
that
she
ought
to
hate
a
perfect
stranger
对那个完全陌生的人,她丝毫不感怨恨
And
how
in
the
world
但实际上我该怎么
Can
the
words
that
I
said
去说出那样的话语
Send
somebody
so
over
the
edge
能让远远角落里的人们
That
they'd
write
me
a
letter
也写给我一封信
Saying
that
I
better
shut
up
and
sing
告诉我停止絮叨而只是唱
Or
my
life
will
be
over
而另外的选择就是生命的尽头
I'm
not
ready
to
make
nice,
还没来得及粉饰优雅
I'm
not
ready
to
back
down,
还没来得及学会放弃
I'm
still
mad
as
hell
我还痴狂一如过往
And
I
don't
have
time
而我已经无暇自顾
To
go
round
and
round
and
round
仅仅在原地转圈圈
It's
too
late
to
make
it
right
爱太深哪来得及改
I
probably
wouldn't
if
I
could
力能所及,心更难听命
Cause
I'm
mad
as
hell
只因为,我还痴狂一如过往
Can't
bring
myself
to
do
what
it
is
You
think
I
should
即使如你所愿,又怎能忍心
勉强自己去选择那样的路
I'm
not
ready
to
make
nice,
还没来得及粉饰优雅
I'm
not
ready
to
back
down,
还没来得及学会放弃
I'm
still
mad
as
hell
我还痴狂一如过往
And
I
don't
have
time
而我已经无暇自顾
To
go
round
and
round
and
round
仅仅在原地转圈圈
It's
too
late
to
make
it
right
爱太深哪来得及改
I
probably
wouldn't
if
I
could
力能所及,心更难听命
Cause
I'm
mad
as
hell
只因为,我还痴狂一如过往
Can't
bring
myself
to
do
what
it
is
You
think
I
should
即使如你所愿,又怎能忍心
勉强自己去选择那样的路
你认为对的路
Forgive,
sounds
good
宽恕其实是一种痛楚
Forget,
I'm
not
sure
I
could
又不敢确定我能去淡忘
They
say
time
heals
everything,
人们说时间能愈合一切
But
I'm
still
waiting
我却还在痴痴等待
说实话,我没看懂,因为我学得不是这个领域的,但我大致的的知道是什么意思。Alpha通道,貌似又称阿尔法通道,这个最早是我在下素材时遇到的,那个是人物素材,背景是纯色的。我们都知道,事实上纯色的背景抠起来也不是魔棒一点就搞定的,会有一些细节。而为了用户方便使用,该公司抠好后保存一个Alpha通道,素材里都会包含一个TIF文件,阿尔法通道就在里面,使用时只需提取阿尔法通道的选区就可以完成抠图。很方便。你这里的教程因该是做景观效果图之类的,各种素材在不同软件中导来导去的,Alpha通道的作用就是保存你抠好的效果。具体方法:(注,此处为网络收集。)在通道面板中点击“新建”图标,即可创建一个alpha通道。
通道中只有灰度信息,白色代表不透明,黑色代表透明。
然后你就用各种工具编辑这个灰度图。
满意后,一定要存成tga或tif格式,在“保存”的对话框中确保“alpha通道”那一行的勾一定要打上,如果是tga在随后弹出的对话框中一定要选择32位通道。
至此alpha通道的信息已在文件中了,如果做后期合成这样就可以了。但是如果用在3D中,仅此是不行的。还得在图层中将欲作透明的部分删成透明(漏出灰白格)才行。
具体方法:
在图层中将所有图层拼合(将所有图层链接,Ctrl+E)
如果此时有背景层,双击背景层,Enter。将背景层转成普通层。
在通道面板中按住Ctrl键点击alpha通道调出它的选区。
回到图层中,Ctrl+Shift+I反选。Delete删除。然后按上述方法保存就行了。
欢迎分享,转载请注明来源:品搜搜测评网