速写中松紧、结构、虚实关系 你了解?

  categories:儿童画教程  author:

速写中松紧、结构、虚实关系 你了解?

画面松紧关系

受光 与 背光  的松紧表现是有所区别的,受光部分的线一般是细而有力这一块的型紧。背光部分的线相对会柔和不会显得太过强烈为松。所以受光为紧背光为松可产生较好的松紧关系。

画面结构取舍

关节 结构、形体 转折 交接 处、舍弃形体过多无用的过度层次。这样会使画面显得更加简练、明了。

 

 

 

 画面虚实关系

虚实是为体现画面空间纵深,为了不让画面过于单调,平板。可增强画面的体积转折。一张好的速写作品不仅在于比例的准确、五官的刻画、动态的把握。线条的处理也是非常重要的。线条的虚实变化!

“虚者空也”,而“实者有也”。画面中必须使虚中有实,实中有虚,这样才能演化出笔墨之轻重,墨色之浓淡,布景之疏密,色彩之冷暖,宾主之呼应,大小之相间……产生变幻新奇、丰富多彩的画面空间。

 

绘画之妙,在于实处不死,虚处不空,虚中有实,实中有虚,以实显虚,以虚显实,虚实相反,而又相生虚实关系在中国画中表现为神韵,其主要体现在画外意境,体现画家的精神世界与内心感受画中虚实关系处理的巧妙,可以创造和加强画面形势构成之起伏跌宕,大至山川林莽丘壑湖海,小至细草、沙渚、烟霭、幽泉,乃至画中一笔一墨之处理,整体形势状貌之布置,甚至提款与跋,用印之长短多少、大小轻重,无处不因虚实相反相成而极其趣在中国的传统绘画中,为了突出主要形象,次要的东西大胆剪裁,中国画的剪裁可以直到零。总之,一幅画必须具有虚与实的对立,这样才能称其为画。

 

虚实作为绘画艺术构成中的一组相反而又相成的概念,极其普遍地显现于绘画的每一个层面,乃至于一点一画之间,使得中国画在更高的艺术层面上创造出特色的写意风格,形成中国绘画的特殊魅力。

墨色浓重繁复处就是实,即指有笔墨处,还可以是墨色深重处,而浅淡疏密处就是虚,即指无笔墨处,空白处,还可以是指墨色轻淡处。

http://www.iigrowing.cn/zhong_guo_shan_shui_hua_de_xu_shi_guan_xi.html

 

 

 … 阅读全文

中国山水画的虚实关系

  categories:儿童画教程  author:

“虚者空也”,而“实者有也”。画面中必须使虚中有实,实中有虚,这样才能演化出笔墨之轻重,墨色之浓淡,布景之疏密,色彩之冷暖,宾主之呼应,大小之相间……产生变幻新奇、丰富多彩的画面空间。

 

一、虚实的概念

虚实作为绘画艺术构成中的一组相反而又相成的概念,极其普遍地显现于绘画的每一个层面,乃至于一点一画之间,使得中国画在更高的艺术层面上创造出特色的写意风格,形成中国绘画的特殊魅力。

赵春秋作品 霁雪行舟

二、虚实在绘画当中的体现

1、从用墨的角度分析

  墨色浓重繁复处就是实,即指有笔墨处,还可以是墨色深重处,而浅淡疏密处就是虚,即指无笔墨处,空白处,还可以是指墨色轻淡处。

赵春秋作品 静听雪飘

2、从用笔的角度分析

  浓重是实,亦可以指用笔沉着处,轻淡即虚,也可以指用笔松动处;用笔一按、一抑是实,这时用力比较实在,用笔一提、一扬即虚,这时用力比较轻;如果笔法太重,使得笔墨落在纸上显得很死板,如笔法太轻,则使得笔墨浮在画面上,用笔之时若过实则辅之虚,若过虚则辅之以实,虚中有实,实中见虚,则使得用笔刚中带柔,柔中见刚,纵横潇洒,虚实得当。

赵春秋作品 江南初雪

3、从布白的角度分析

  布白就是指画家在画纸上留下来的空白,是有笔有形之中的空出来的无。在空白的画纸上落笔墨的地方就是实,而笔墨之外的空白地方就是虚。这种布白就像是在一片混沌不清的世界之中一道亮光,给人一种清新,顺畅的感觉。就像是在枝繁叶茂的深林之中,因大大小小的形状各异的空白而形成的一种烟云变化的状态,给人虚幻缥缈,仿佛置身于幻境之中的感觉。

赵春秋作品 山深雪意浓

4、从山水画意境创造的处理上的分析

  气机外张是实,精神内敛即虚,这就需要权衡轻重,把握分寸,或以高山奇峰为主,大实为主,仍要辅之以虚,使得画面灵动生趣;或以小丘静水为主,大虚之中添加实,画面方可稳住不浮,无论画面是以虚还是实为主,都要根据画面的意境的需要,如在画重峦叠嶂之时辅之以灵动的云雾,画面变得生气勃勃。

三、中国画虚实在绘画当中的表现特点

(一)黄宾虹的画面在虚实处理

  黄宾虹的画面在虚实处理上,往往在画面之团团昏黑中,适当在村舍、屋宇亭台、山石或人物处留白,此白使画面顿现灵透。他说:“虚处不是空虚,还得有景,密处还需有立锥之地,切不可使人感到窒息。此即虚中须注意有实,实中须注意有实。实中之虚,在于大虚。虚中之实在于大实。”这里所指的大虚大实,即所谓“虚能走马,密不透风”的对比效应。而“虚中还得有景,密处须可立锥”是强调虚而不空,而实处当见空灵的对比中的协调性。例如黄宾虹《山中访友图轴》,在这幅画面中房屋、人物、石表、树隙,处处留白,此白即所谓“一炬之光,通室皆明”使得密实中透空明,此即实中之虚。

11

黄宾虹《山中访友图轴》

(二)虚而万景入

  众所周知,艺术作品的欣赏过程是知觉、感情的综合过程。想象谓之联想,在艺术欣赏中又叫“再创造”,是艺术欣赏的基本方法,基本规律之一。因为“无”才可对审美主体引发联想,用联想去补充“无”,实观符合欣赏者审美需要的有。“无”留给欣赏者再创造的机会是无限的。“虚而万景入”,无是实之所藏,蕴藏着一切和无限。这就是所谓画外之境,同样山水画空白处有的表示天,有的表示地,有的表示雪,皆似有而无,虽无却让你感到有,给人以无限的遐想,回味无穷。

1、八大山人画鱼,齐白石画虾

例如我们欣赏清代画僧八大山人的画,一条生动的鱼在纸上,别无一物,却令人感到满幅是水。再如齐白石画虾,不画水,空白处使观者联想到水,几乎没有任何人认为画面上无水,而且实实在在地使你感受到水的存在。


八大山人 鱼

齐白石 虾

2、夏圭《松溪泛舟图》

南宋山水画的“马一角”,“夏半边”就是对空白运用最好的例子。夏圭《松溪泛舟图》,此图以纨扇的形式绘水、天、明月和苍松。江中一叶轻舟,载四人划桨前行。用笔简率含蓄,寥寥数笔,就把图中的人物和点景刻画得生动有致。构图删繁就简,虚实结合,作者仅画几棵老松、小舟和明月就组合一幅巧妙的图画,而留出大片的空白,以表现水天的辽阔浩渺,画面虽小,意境无穷。

夏圭《松溪泛舟图》

阅读全文

了解色温,给照片最真实的色彩

  categories:儿童画教程  author:

在摄影的过程中,即使是同样的被摄主体,因为拍摄时间的不同,也会产生不同的颜色变化。了解拍摄场景所呈现的色温(K),能帮助我们正确测光、掌握白平衡,避免画面出现色偏问题。

色温

不同的光线、甚是不同时刻的同一束光线,都会有不同的色温,比如中午的阳光要比日出时的阳光和钨丝灯的光线蓝一点。而这种色温的差异很容易导致拍摄时产生色偏现象。

如果要把照片中的色偏还原成让我们看起来准确的色彩平衡,那么所拍摄的照片中就必须包括原始景物中的颜色,不过这些颜色会受到光源颜色的影响。而色温就是用来描述光源颜色的一种方法。

表示色温的方法有两种,一种是用绝对温度来表示,符号为“K”(Kelvin 的缩写)。另一种方法是用微倒度(又称微倒值或麦瑞德值)来表示,符号为 MIRED 或 MRD。麦瑞德值是微倒度的译音,英文原文为 Micro Reciprocal Degree,其计算方法为:M=1000000/K。

色温级别的范围包含了从微红光线的低色温到蓝色光线的较高色温。日光相应地包含了倾向光谱蓝色一端更多的光线,荧光灯包括了倾向红色一端更多的光线。这就是把日光称为“冷光”,把荧光灯称为“暖光”的原因。

下表所示是常用光源的色温或相关色温系数及微倒度值,从中可以看出,光源色温的高低代表着各自所含光谱成分的不同。如果光源的光谱成分所含红光成分多于蓝光成分,色温就会偏低;反之,色温则偏高。

常用光源的色温或相关色温系数。
当光源色温为 5500K 时,光谱成分中所含的红光、绿光、蓝光三种色光的比例大致相同,这时所发出的光在人的视觉感受上为白光,显色指数最高为 100。当光源色温低于 5500K 时,光源光谱成分中的绿光保持不变,但是红光的比例就明显高于蓝光。随着光源色温值逐渐下降,红光的比例不断上升,而蓝光则逐渐减少。

反之,当光源色温高于 5500K 时,光谱成分中绿光仍然不变,反而是红光的比例逐渐降低,蓝光的比例在逐渐升高。因此,光源色温的高低,是会随着光源的比例不同,而有所变化的。辐射是连续性光谱,色温值的高低代表着红光与蓝光的变化,所以可以用校色温滤镜来调节,使画面正常还原。

在摄影中,面对上述的各类光源,数码相机需要使用影像传感器来平衡由于不同光源导致的场景色温差异,使影像色彩与人眼所看到的相同,这个功能就是“白平衡”。“白平衡”可通过传感器以自动或是手动的方式来平衡不同色温的光线。“日光”(室外光)设定能平衡冷色调、偏蓝的日光,而“暖光”(室内光)设定能平衡暖色调、偏红的室内光。

不同时段的色温对摄影的影响

一天中光线的变化。
外景自然光的变化规律,是宇宙运动的结果。整个地球是在太阳光和天空反射光组成的自然照明下,随着地球的自转,不断地改变着太阳光的投射角度,这一投射角度的变化,不断地改变着太阳光的照明效果。

因为地球的自转运动,所以太阳光的光谱变化明显。而此光谱的改变,就会在一定程度上影响到了景物的色彩。比较显著的有以下三个时段:

日出前和日落后

日出拍摄的景物。
日出前和日落后,景物被太阳散射光照射,光源色温偏高,光谱中有较多的蓝紫光,所以天空呈浅蓝紫色,而景物的色彩也会受到微弱的浅蓝紫色影响。

日出后和日落前


日落拍摄的景物。
日出后和日落前的短暂时刻,景物色彩丰富,冷暖对比鲜明。日出时所拍摄的色调,多为金黄色;而日落后所拍摄的景物色彩多为橙、红色调。这也是由于空气中介质不同,对光的投射、反射的程度不等,以至于色光的纯度有较大的区别所造成。要注意的是,日出前或日落后的光线通常是柔和并具接近单色的,这时候的光比较暗淡,所以拍摄时通常要用较长的曝光时间。


柔和的光线色彩。
正午

正午拍摄的景物。

正午的这一段时间里,色彩清楚明亮,可以准确地映射在照片上。如果在晴天的中午拍摄,阳光会使拍摄的景物更趋近于自然色,能准确地反映各种事物的原色调。

(本文转自 … 阅读全文

使用Springboot搭建OAuth2.0 Server

  categories:资料  tags:  author:

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。

本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。

OAuth 简介

OAuth 是由 Blaine Cook、Chris Messina、Larry Halff 及 David Recordon 共同发起的,目的在于为 API 访问授权提供一个安全、开放的标准。

基于 OAuth 认证授权具有以下特点:

  • 安全。OAuth 与别的授权方式不同之处在于:OAuth 的授权不会使消费方(Consumer)触及到用户的帐号信息(如用户名与密码),也是是说,消费方无需使用用户的用户名与密码就可以申请获得该用户资源的授权。
  • 开放。任何消费方都可以使用 OAuth 认证服务,任何服务提供方 (Service Provider) 都可以实现自身的 OAuth 认证服务。
  • 简单。不管是消费方还是服务提供方,都很容易于理解与使用。

OAuth 的解决方案如下图所示。

图 1. OAuth Solution

图 1. OAuth Solution

如 … 阅读全文

Gradle常用命令

  categories:资料  author:
1、Gragle常用命令

之前接触了一些命令如

./gradlew -v

./gradlew clean

./gradlew build,

注意都是./gradlew./代表当前目录,gradlew代表 gradle wrapper,意思是gradle的一层包装,可以理解为在这个项目本地就封装了gradle,即gradle wrapper,只要下载成功即可用grdlew wrapper的命令代替全局的gradle命令。

Gradle常用命令列表

gradle build

gradle test

gradle compilejava

gradle jar

gradle clean

gradle jar

gradle init

//生成wrapper包

gradle wrapper

gradle compilejava

gradle javadoc

gradle … 阅读全文

java的WeakReference弱引用概述

  categories:资料  author:

–test-2-国外一个技术面试官在面试senior java developer的时候, 问到一个weak reference相关的问题. 他没有期望有人能够完整解释清楚weak reference是什么, 怎么用, 只是期望有人能够提到这个concept和java的GC相关. 很可惜的是, 20多个拥有5年以上java开发经验的面试者中, 只有两人知道weak reference的存在, 而其中只有一人实际用到过他. 无疑, 在interviewer眼中, 对于weak reference的理解和应用在面试中给了这一个interviewee相当多的加分. 所以, 将我对于这个技术的理解和使用总结在这篇博客里, 希望读者和自己通过读和写这篇帖子, 能够在以后的工作和面试中获得加分.
在Java里, 当一个对象o被创建时, 它被放在Heap里. 当GC运行的时候, 如果发现没有任何引用指向o, o就会被回收以腾出内存空间. 或者换句话说, 一个对象被回收, 必须满足两个条件: 1)没有任何引用指向它 2)GC被运行.

在现实情况写代码的时候, 我们往往通过把所有指向某个对象的referece置空来保证这个对象在下次GC运行的时候被回收 (可以用java -verbose:gc来观察gc的行为)

Object c = … 阅读全文

ThreadLocal用法详解和原理

  categories:资料  author:

一、用法

ThreadLocal用于保存某个线程共享变量:对于同一个static ThreadLocal,不同线程只能从中get,set,remove自己的变量,而不会影响其他线程的变量。

1、ThreadLocal.get: 获取ThreadLocal中当前线程共享变量的值。

2、ThreadLocal.set: 设置ThreadLocal中当前线程共享变量的值。

3、ThreadLocal.remove: 移除ThreadLocal中当前线程共享变量的值。

4、ThreadLocal.initialValue: ThreadLocal没有被当前线程赋值时或当前线程刚调用remove方法后调用get方法,返回

此方法值。

package com.coshaho.reflect;

/**
* ThreadLocal用法
* @author coshaho
*
*/
public class MyThreadLocal
{
private static final ThreadLocal<Object> threadLocal = new ThreadLocal<Object>(){
/**
* ThreadLocal没有被当前线程赋值时或当前线程刚调用remove方法后调用get方法,返回此方法值
*/
@Override
protected 

阅读全文

深入剖析ThreadLocal

  categories:资料  author:

要了解ThreadLocal,首先搞清楚ThreadLocal 是什么?是用来解决什么问题的?

ThreadLocal 是线程的局部变量, 是每一个线程所单独持有的,其他线程不能对其进行访问, 通常是类中的 private static 字段,是对该字段初始值的一个拷贝,它们希望将状态与某一个线程(例如,用户 ID 或事务 ID)相关联

我们知道有时候一个对象的变量会被多个线程所访问,这时就会有线程安全问题,当然我们可以使用synchorinized 关键字来为此变量加锁,进行同步处理,从而限制只能有一个线程来使用此变量,但是加锁会大大影响程序执行效率,此外我们还可以使用ThreadLocal来解决对某一个变量的访问冲突问题。

当使用ThreadLocal维护变量的时候 为每一个使用该变量的线程提供一个独立的变量副本,即每个线程内部都会有一个该变量,这样同时多个线程访问该变量并不会彼此相互影响,因此他们使用的都是自己从内存中拷贝过来的变量的副本, 这样就不存在线程安全问题,也不会影响程序的执行性能。

但是要注意,虽然ThreadLocal能够解决上面说的问题,但是由于在每个线程中都创建了副本,所以要考虑它对资源的消耗,比如内存的占用会比不使用ThreadLocal要大。

,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。

以下是本文目录大纲:

一.对ThreadLocal的理解

二.深入解析ThreadLocal类

三.ThreadLocal的应用场景

若有不正之处请多多谅解,并欢迎批评指正。

一.对ThreadLocal的理解

ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。

这句话从字面上看起来很容易理解,但是真正理解并不是那么容易。

我们还是先来看一个例子:
class ConnectionManager {

private static Connection connect = null;

public static Connection

阅读全文

Java多线程之Callable接口

  categories:资料  author:

Callable和Runnbale一样代表着任务,区别在于Callable有返回值并且可以抛出异常。

1. 创建线程的三种方式:

  • 继承Thread,重写run方法
  • 实现Runnable接口,重新run方法
  • 实现Callable接口,重写call方法

2. Callable接口实际上是属于Executor框架中的功能类,Callable接口与Runnable接口的功能类似,但提供了比Runnable更加强大的功能。

  • Callable可以在任务结束的时候提供一个返回值,Runnable无法提供这个功能
  • Callable的call方法分可以抛出异常,而Runnable的run方法不能抛出异常。

Callable和Future出现的原因

创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。
这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。
如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。

而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。

Callable和Future介绍

Callable接口代表一段可以调用并返回结果的代码;Future接口表示异步任务,是还没有完成的任务给出的未来结果。所以说Callable用于产生结果,Future用于获取结果。

Callable接口使用泛型去定义它的返回类型。Executors类提供了一些有用的方法在线程池中执行Callable内的任务。由于Callable任务是并行的(并行就是整体看上去是并行的,其实在某个时间点只有一个线程在执行),我们必须等待它返回的结果。
java.util.concurrent.Future对象为我们解决了这个问题。在线程池提交Callable任务后返回了一个Future对象,使用它可以知道Callable任务的状态和得到Callable返回的执行结果。Future提供了get()方法让我们可以等待Callable结束并获取它的执行结果。

package cn.iigrowing.threads.study.Callable;

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

/*
* 一、创建执行线程的方式三:实现 Callable 接口。 相较于实现 Runnable 接口的方式,方法可以有返回值,并且可以抛出异常。
*
* 二、执行 Callable 方式,需要 FutureTask … 阅读全文

什么是JWT(JSON WEB TOKEN)

  categories:资料  tags:  author:

     Json web token(JWT)是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准(RFC 7519),该token被设计为紧凑且安全的,特别适用于分布式站点的单点登陆(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。

  起源

说起JWT,我们应该来谈一谈基于token的认证和传统的Session认证的区别。

  传统的session认证

我们知道,http协议本身是一种无状态的协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证,那么下一次请求时,用户还要再一次进行用户认证才行,因为根据http协议,我们并不能知道是哪个用户发送的请求,所以为了让我们的应用能识别是哪个用户发出的,我们只能在服务器存储一份用户登陆的信息,这份登陆信息会在响应时传递给服务器,告诉其保存为cookie,以便下次请求时发送给我们的应用,这样我们的英哟个就能识别请求来自哪个用户了,这就是传统的基于sessino认证

但是这种基于session的认证使应用本身很难得扩展,随着不用客户端的增加,独立的服务器已无法承载更多的用户,而这个时候基于session认证应用的问题就会暴露出来

  基于session认证所显露的问题

Session:每个用户经过我们的应用认证之后,我们的应用都要在服务端做一次记录,以便用户下次请求的鉴别,通常而言session都是保存在内存中,而随着认证用户的增多,服务端的开销会明显增大

扩展性:用户认证之后,服务端做认证记录,如果认证的记录被保存在内存的话,这意味着用户下次请求还必须要请求在这台服务器上,这样才能拿到授权的资源,这样在分布式的应用上,响应的限制了负载均衡器的能力,也意味着限制了应用的扩展性

CSRF:因为是基于cookie来进行用户识别的,cookie如果被截获,用户就会很容易受到跨站请求伪造的攻击。

基于token的鉴权机制

基于token的鉴权机制类似于http协议也是无状态的,它不需要在服务端去保留用户的认证信息或会话信息。这也就意味着机遇tokent认证机制的应用不需要去考虑用户在哪一台服务器登陆了,这就为应用的扩展提供了便利

流程是这样的

  • 用户使用用户名密码请求服务器
  • 服务器进行验证用户信息
  • 服务器通过验证发送给用户一个token
  • 客户端存储token,并在每次请求时附加这个token值
  • 服务器验证token,并返回数据

这个token必须要在每次请求时发送给服务器,它应该保存在请求头中,另外,服务器要支持CORS(跨来源资源共享)策略,一般我们在服务端这么做就可以了 Access-Control-Allow-Origin:*

JWT的构成

JWT是由三部分构成,将这三段信息文本用链接构成了JWT字符串。就像这样

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJVc2VySWQiOjEyMywiVXNlck5hbWUiOiJhZG1pbiJ9.Qjw1epD5P6p4Yy2yju3-fkq28PddznqRj3ESfALQy_U

第一部分我们称它为头部(header)第二部分我们称其为载荷(payload,类似于飞机上承载的物品),第三部分是签证(signature)

   header

JWT的头部承载的两部分信息:

  • 声明类型,这里是jwt
  • 声明加密的算法,通常直接使用HMAC SHA256

完整的头部就像下面这样的JSON

{
     'typ':'JWT',
     'alg':'HS256'  
}

然后将头部进行base64加密(该加密是可以对称解密的),构成了第一部分

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
阅读全文



快乐成长 每天进步一点点      京ICP备18032580号-1