ย้อมสีภาพกันเถอะ by

28
Dec
0

ในการวาดรูป เราสามารถลงน้ำหนักขาว-ดำก่อนที่จะย้อมสีต่อทีหลังได้ การลงสีแบบนี้มีข้อดีคือเราสามารถควบคุมน้ำหนักได้ง่ายกว่าลงเป็นสีเลยตั้งแต่ต้น
sample9b
เริ่มจากภาพขาว-ดำก่อน
sample9c

 

 

เปิดเลเยอร์ใหม่ขึ้นเหนือภาพขาวดำของเรา ปรับเป็น overlay แล้วลงสีไปตามใจชอบ

sample9d

tips: การลงสีในเลเยอร์ overlay แม้ในส่วนที่เป็นสีเดียวกันเช่นสีผิว เราก็จะไม่ลงสีน้ำตาลสีเดียวลงไป แต่เลือกสีตามน้ำหนักและความเหมาะสมของภาพบริเวณนั้น

sample9e sample9f

ผมรู้สึกว่า overlay แค่ชั้นเดียวยังไม่จี๊ดจ๊าดสะใจ จึงเปิดเลเยอร์ใหม่ทับอีก 2 ชั้น โดยลงสีที่ต้องการให้สดขึ้นในเลเยอร์หนึ่งแล้วปรับเป็น  overlay ส่วนเลเยอร์สองปรับเป็น screen ลงสีเทาจางไปเพื่อให้บริเวณนั้นสว่างขึ้น

sample9g

เมื่อภาพรวมพอใจแล้วก็จัดการรวมเลเยอร์ทั้งหมดแล้วจัดการลงสีทับลงไป

sample9h

เก็บรายละเอียด เติมเงาตกกระทบและไฮไลท์ต่างๆ

sample9i

เป็นอันเสร็จเรียบโร้ย

วิธีทำฉากหลังให้ repeat ได้ by

21
Dec
0

วิธีทำฉากหลังให้ repeat ได้ แบบตัวอย่าง

1.เมื่อวาดสิ่งของในฉากเรียบร้อยแล้ว

ก็เลื่อนไปด้านใดด้านนึง

2. Select all แล้วกด Layer Cut

3.จากนั้นไปที่ Layer เดิม (ที่ตกขอบไปแล้ว) เลื่อนไปอีกข้าง

4.ตกแต่งรายละเอียดที่เหลือตรงกลาง

ปล.ในรูปตัวอย่างส่วนของพื้นมีการทำให้ repeat ได้ไปก่อนแล้ว

PHPUnit#2 โครงสร้างการใช้งาน phpunit by

1
Dec
0

เริ่มการเขียน PHPUnit Test case
ด้วยการเรียกใช้ไฟล์ bootstrap.php ที่ได้ทำการตั้งค่าต่างๆ เอาไว้
โดยทำการ include_once เข้ามาใน file ที่กำลังจะเขียน

function หลักที่นอกเหนือจาก Test case ของเราเองก็จะมี

  1. setUpBeforeClass จะถูกเรียกใช้งานก่อนจะเริ่ม class
  2. setUp จะถูกเรียกใช้งานก่อนจะเริ่ม function test
  3. tearDown จะถูกเรียกใช้งานหลังจากจบ function test
  4. tearDownAfterClass จะถูกเรียกใช้งานหลังจากจบ class

ประกาศ function setUpBeforeClass และ tearDownBeforeClass โดย
public static function setUpBeforeClass
public static function tearDownBeforeClass

ส่วน setUp และ tearDown ใช้การประกาศ function ตามปกติ
ส่วนเสริมที่แนะนำก็จะมีการ testException กับ dataProvider

เริ่มจาก dataProvider นะครับ เป็น function ที่จะ return array(array()) มาให้ function เป็นชุดๆ
โดย function ที่ต้องการจะใช้งาน dataProvider จะต้องการใส่ comment ไว้บนหัว function
ว่า dataProvider ตามด้วย
/**
* @dataProvider
*/

ด้านล่างนี้เป็นตัวอย่าง testException จาก dataProvider ทำให้เราไม่ต้องไป try ทีละตัวแปรภายใน function test
function exceptionUserIdProvider() {
return array(
array(NULL, 'user id cannot be null'),
array('a', 'user id must be numberic'),
array(1.11, 'user id must not be float'),
array('1.11', 'user id must not be float'),
array(-1, 'user id must not less than zero'),
array(array(1), 'user id must not be array'),
);
}

/**
* @dataProvider exceptionUserIdProvider
*/
function testFunctionException($id, $message) {
$this->setExpectedException('Exception', $message);
$this->test->function($id);
}

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน