วันพฤหัสบดีที่ 17 มีนาคม พ.ศ. 2554

iPhone: Crop Image

Crop Image
การตัดบางส่วนของรูปต้นแบบออกมาใช้งานนั้นใช้กันมากในงานโปรแกรมกราฟฟิคต่างๆ เช่น เกม ครับ โอเค ในบทความนี้เราจะดูกันสิว่า การ crop รูปใน Object-c เขียนกันอย่างไร

ขั้นตอน

1. สร้าง UIImage จากชื่อภาพ (tImageName) ขึ้นมาเป็นรูปภาพต้นแบบ

UIImage *tmp = [UIImage imageNamed:[@"imageName.jpg"]];


2. กำหนด ขนาดที่จะทำการ crop ด้วย CGRectMake

//crop image
CGRect rectCrop = CGRectMake(0, 0,tmp.size.width, 80);




3. สร้าง CGImageRef ที่เป็นข้อมูลภาพที่เกิดจากการ crop แล้ว

CGImageRef imgRef = CGImageCreateWithImageInRect([tmp CGImage], rectCrop);


4. การสร้างรูป UIImage ด้วย CGImageRef ที่ถูก  crop เรียบร้อยแล้ว

UIImage *myImage = [tmp initWithCGImage:imgRef];


ภาพ myImage เป็น UIImage ที่ถูก crop ตามขนาดที่เราต้องการจากภาพ tmp เรียบร้อยแล้วก้อสามารถนำไปใช้งานได้เลย



ตัวอย่าง
ผมลองทำการนำภาพขนาด 320x120 px เข้าใส่ ViewCell ขนาดความสูง 80 px ปรากฎว่ารูปใน cell ตารางล้นออกมาเกิน cell อื่นหมดเลย (ภาพแรก) ดังนั้นผมจึงต้องทำการ crop รูปภาพก่อนจะเอาไปใช้งานนั้นเอง (ภาพที่สอง)


Reference

adaydesign :)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น