- 浏览: 203580 次
- 性别:
- 来自: 芜湖
文章分类
- 全部博客 (139)
- 软件 (0)
- Pattern (6)
- CSDN导入 (19)
- Struts (3)
- [网站分类]1.网站首页原创 (27)
- [网站分类]6.转载区 (4)
- Hibernate (10)
- Error (8)
- [网站分类]2.Java新手区 (20)
- Java (8)
- [网站分类]4.其他技术区 (10)
- Web (1)
- C++ (2)
- Algorithm (4)
- Linux (2)
- Skill (1)
- Tech (2)
- Note (2)
- [网站分类]3.非技术区 (1)
- Database (1)
- Winty (7)
- [网站分类]1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (0)
最新评论
-
haohao-xuexi02:
很不错哦。
O'Reilly cos上传组件的使用(1/3) - 上传文件 -
yoin528:
useUnicode=true&charact ...
[原]向MySQL数据库插入Blob数据的问题 -
xiaoqing20:
下载来看看!呵呵
[原]Struts2类型转换 -
xiaoqing20:
[原]Struts2类型转换
[关键字]:java,design pattern,设计模式,《Java与模式》学习,composite,合成模式
[环境]:StarUML5.0 + JDK6
[作者]:Winty (wintys@gmail.com) http://www.blogjava.net/wintys/
[正文]:
透明的合成模式
package pattern.composite.transparent;
import java.util.*;
/**
* 透明的合成模式:Composite Pattern
* @version 2009-6-3
* @author Winty(wintys@gmail.com)
*/
public class TransparentCompositeTest{
public static void main(String[] args){
Graphics g1 , g2;
Graphics p1 , p2;
g1 = new Line();
g2 = new Circle();
p1 = new Picture();
p2 = new Picture();
g1.draw();
g2.draw();
System.out.println("");
p1.add(g1);
p1.add(g2);
p1.draw();
System.out.println("");
p2.add(g1);
p2.add(g2);
p2.add(p1);
p2.draw();
}
}
/**
* 抽象Component角色
*/
interface Graphics{
void draw();
void add(Graphics g);
void remove(int i);
Graphics getChild(int i);
}
/**
* Leaf角色
*/
class Line implements Graphics{
@Override
public void draw(){
System.out.println("draw a line");
}
@Override
public void add(Graphics g){
}
@Override
public void remove(int i){
}
@Override
public Graphics getChild(int i){
return null;
}
}
/**
* Leaf角色
*/
class Circle implements Graphics{
@Override
public void draw(){
System.out.println("draw a circle");
}
@Override
public void add(Graphics g){
}
@Override
public void remove(int i){
}
@Override
public Graphics getChild(int i){
return null;
}
}
/**
* Composite角色
*/
class Picture implements Graphics{
private List<Graphics> graphics;
public Picture(){
graphics = new ArrayList<Graphics>();
}
@Override
public void draw(){
Iterator<Graphics> it = graphics.iterator();
while(it.hasNext()){
Graphics g = it.next();
g.draw();
}
}
@Override
public void add(Graphics g){
graphics.add(g);
}
@Override
public void remove(int i){
graphics.remove(i);
}
@Override
public Graphics getChild(int i){
return graphics.get(i);
}
}
import java.util.*;
/**
* 透明的合成模式:Composite Pattern
* @version 2009-6-3
* @author Winty(wintys@gmail.com)
*/
public class TransparentCompositeTest{
public static void main(String[] args){
Graphics g1 , g2;
Graphics p1 , p2;
g1 = new Line();
g2 = new Circle();
p1 = new Picture();
p2 = new Picture();
g1.draw();
g2.draw();
System.out.println("");
p1.add(g1);
p1.add(g2);
p1.draw();
System.out.println("");
p2.add(g1);
p2.add(g2);
p2.add(p1);
p2.draw();
}
}
/**
* 抽象Component角色
*/
interface Graphics{
void draw();
void add(Graphics g);
void remove(int i);
Graphics getChild(int i);
}
/**
* Leaf角色
*/
class Line implements Graphics{
@Override
public void draw(){
System.out.println("draw a line");
}
@Override
public void add(Graphics g){
}
@Override
public void remove(int i){
}
@Override
public Graphics getChild(int i){
return null;
}
}
/**
* Leaf角色
*/
class Circle implements Graphics{
@Override
public void draw(){
System.out.println("draw a circle");
}
@Override
public void add(Graphics g){
}
@Override
public void remove(int i){
}
@Override
public Graphics getChild(int i){
return null;
}
}
/**
* Composite角色
*/
class Picture implements Graphics{
private List<Graphics> graphics;
public Picture(){
graphics = new ArrayList<Graphics>();
}
@Override
public void draw(){
Iterator<Graphics> it = graphics.iterator();
while(it.hasNext()){
Graphics g = it.next();
g.draw();
}
}
@Override
public void add(Graphics g){
graphics.add(g);
}
@Override
public void remove(int i){
graphics.remove(i);
}
@Override
public Graphics getChild(int i){
return graphics.get(i);
}
}
运行结果:
draw a line
draw a circle
draw a line
draw a circle
draw a line
draw a circle
draw a line
draw a circle
draw a circle
draw a line
draw a circle
draw a line
draw a circle
draw a line
draw a circle
发表评论
-
[原]导出CodeHelp的数据
2009-03-16 17:05 859搬到blogjava总得发点原创的东西吧。 Code ... -
[原]使用Ant实现zip压缩解压功能
2009-03-19 13:17 1721[关键词]:ant,zip,unzip,Apache,压缩,解 ... -
[原]EL函数的使用
2009-04-03 21:29 1120[标题]:EL函数的使用 [时 ... -
[原]对Class.getMethod()的调用未经检查
2009-04-05 15:52 2365[标题]:对Class.getMethod()的调用未经检查 ... -
[原]JNI简单示例
2009-04-05 21:33 1039[标题]:JNI简单示例 [时 ... -
[原]简单工厂模式
2009-04-14 12:26 755[关键字]:java,设计模式,简单工厂,《java与模式》 ... -
[原]工厂模式
2009-04-14 12:32 734[关键字]:java,design pattern,设计模式, ... -
[原]抽象工厂模式
2009-04-14 19:25 759[关键字]:java,design pattern,设计模式, ... -
[原]方法返回值为数组的另一种表示方法
2009-04-25 22:28 977[时间]:2009-04-25 今天看到JDK的源代码 ... -
[原]SAX使用示例
2009-04-26 19:18 2053[标题]:[原]SAX使用示例 [时间]:2009-4-25 ... -
[原]责任链模式
2009-05-09 16:47 737[关键字]:java,design pattern,设计模式, ... -
[原]状态模式
2009-05-18 23:03 839[关键字]:java,design pattern,设计模式, ... -
[原]策略模式
2009-05-21 22:21 706[关键字]:java,design pattern,设计模式, ... -
[原]VC实现重启路由器
2009-05-29 23:36 2082[标题]:[原]VC实现重启路 ... -
[原]远程登录Windows Server 2003的当前会话
2009-06-01 11:19 2075[标题]:远程登录Windows Server 2003的当前 ... -
[原]Tomcat crossContext
2009-06-01 12:27 6103[标题]:Tomcat crossContext [时间]:2 ... -
[原]装饰模式1
2009-06-07 22:33 716[关键字]:java,design pattern,设计模式, ... -
[原]装饰模式3-Grep
2009-06-07 22:42 700[关键字]:java,design pattern,设计模式, ... -
[原]合成模式-安全的
2009-06-08 22:27 840[关键字]:java,design pattern,设计模式, ... -
[原]模板方法模式
2009-06-15 17:05 677[关键字]:java,design pattern,设计模式, ...
相关推荐
在头发合成中,可能需要将一个人物的头部与不同的头发样式进行结合,通过图层的混合模式、透明度、蒙版等工具,使得新添加的头发自然融入原有图像。 在描述中提到“有好几个”,这可能意味着压缩包中包含多份不同的...
PS抠图合成教程.pdf 本教程主要讲解了如何使用 Adobe Photoshop 进行抠图和合成,旨在帮助读者掌握抠图技巧和合成技术。 1. 图像放大和缩小 在开始抠图之前,需要将图像放大,以确保图像的清晰度。使用“图像”→...
在“素材”文件夹中,可能会包含各种图片资源,如人物剪影、校园背景、道具元素等,这些都是合成创意图像的原材料。使用这些素材时,需要注意版权问题,确保所有素材均合法使用。 总之,通过学习和实践这些Photo...
在图像处理领域,有时我们需要将具有固定背景...这在设计Logo、图像合成或任何需要透明背景的应用场景中非常有用。只要理解了Alpha通道的作用以及如何利用它,就可以根据具体需求灵活调整代码,实现更复杂的透明效果。
- 外观模式:为子系统提供一个统一的接口,使得子系统的复杂性对客户端透明。 - 桥接模式:将抽象部分与它的实现部分分离,使它们可以独立变化。 - 组合模式:允许你将对象组织成树形结构表示部分-整体层次结构。...
合成模式:合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式就 合成模式 是一个处理对象的树结构的模式。 合成模式把部分与整体的关系用树结构表示出来。 合成模 式使得客户端把一个个单独的...
常见的图像合成操作包括但不限于:图像叠加、透明度调整、混合模式应用等。在此案例中,我们需要实现的是将文字添加到图片之上。 #### 2. 使用`Bitmap`对象进行图像处理 在Android开发中,`Bitmap`类是用于表示和...
接着,我们使用`Graphics2D`的`setComposite`方法设置AlphaComposite,其中`AlphaComposite.SRC_OVER`模式会将新图像(这里是半透明版本)与目标(背景)图像进行合成,而`0.5f`参数表示50%的透明度。最后,我们将...
A301型氨合成催化剂行业市场突围建议及需求分析报告深入探讨了这一特定领域的市场前景、政策环境、运行趋势以及发展模式。以下是基于报告内容的关键知识点解析: 1. **市场预测与分析**: - 时间序列预测:这是一...
- **技术要点**:通过图层混合模式实现图像合成。 - **操作步骤**: - 创建新图层,并设置混合模式为叠加。 - 调整不透明度,实现图像之间的自然过渡。 ### 18. 高级编辑技巧 - **技术要点**:通过多种工具实现...
例如,用户可能希望指定合成的透明度,这就需要用到Alpha通道的处理。 最后,合成后的图像需要保存回磁盘。这需要执行文件写入操作,并确保保存的格式与原始图片相同,或者根据用户选择转换为其他格式。在VC++中,...
在Python的PIL中,我们可以创建一个包含水印的透明图层,然后用`draw()`方法在指定位置绘制文字,或者直接将带有水印的图片覆盖在原图上。水印的透明度、大小、位置等都是可以调整的参数,以达到最佳视觉效果。 ...
通过这个教程,你可以掌握在PS中进行复杂图像合成的基本技巧,如图层管理、蒙版应用、混合模式的运用,以及如何通过画笔工具进行精确的图像编辑。这些技能不仅适用于制作类似创意合成,还可以广泛应用于各种图像设计...
- 在通道面板选择蓝色通道,应用图像,设置图层为背景,混合模式为正片叠底,不透明度50%,反相。 - 回到图层面板,创建曲线调整图层,调整蓝通道和红通道的数值。 - 新建黑色图层,设置混合模式为正片叠底,调整...
- 创建一个图层,使用“柔光”模式,透明度设置在4到6之间; - 在另一图层上,预先设置好透明度为20%,模式为“图片”。 #### 技术六:图层混合模式应用 - **技术要点**:合理利用图层混合模式,实现特殊效果。 -...
在PS中,每个图层都可以有自己的透明度和混合模式,混合模式决定了当前图层的像素如何与下方图层的像素相互作用。而“明度”混合模式是一种基于像素亮度的混合方式,它只考虑每个像素的明暗信息,忽略色彩信息。 当...
- 照片墙合成函数 `picture_wall_mask` 实现了一个循环,遍历文字图像的每个像素,并根据像素的透明度值来选择和调整背景图片。这样可以在输出图像中形成类似“文字”的效果。 - 主函数 `main` 将所有步骤整合起来,...
- 执行“图像”→“模式”→“转换为RGB模式”,再执行“编辑”→“清除”以删除原图层。 - 执行“选择”→“色彩范围”,调整参数以获取所需效果。 3. **纹理效果**: - 创建新图层,执行“图像”→“调整”→...
该题考察如何创建透明图层,并设置其透明度和混合模式。关键在于: - **透明图层创建**:通过新建透明背景图层或调整现有图层属性来实现。 - **混合模式应用**:合理选择混合模式(如叠加、柔光等)以达到预期视觉...
通过绘制黑白或灰度的蒙版,设计师可以精确控制各个元素的可见性,使得合成过程更为精细,同时避免了对原图层造成不可逆的修改。 在实际操作中,设计师还需要注意色彩搭配和色调统一。通过调整色相、饱和度、亮度和...