Showing posts with label การศึกษา. Show all posts

การ Resize รูปภาพบน Google Drive โดยใช้ Google Script

clip_image001

        ก่อนอื่นต้องกราบสวัสดีเพื่อนๆ พี่ๆ น้องๆ ที่เข้ามาอ่านบทความนี้นะครับ พยายามหาเวลาและโอกาสเข้ามาแนะนำการเขียนบทความเกี่ยวกับ Google script เพื่อเป็นแนวทางการพัฒนาต่อยอดทางโปรแกรม ซึ่งผมเป็นสาวกพวกชอบของฟรี และพี่Goo ก็ดันใจดีซะมากมายก่ายกอง ต้องขอบพระคุณพี่ Goo อย่างมากๆเลยนะครับ ที่ทำให้ชาวโลกได้เห็นว่าของฟรีเขาก็มีในโลกนะจ๊ะ

         มาเข้าเรื่องเลยนะครับ ต้องติดตามบทความอื่นๆที่เขียนผ่านมาเพื่อเป็นพื้นฐานการเขียน Google Script ผมจะพยายามแนะนำวิธีการทำตั้งแต่พื้นฐานให้เข้าใจได้ง่ายที่สุดนะครับ

         กรณีนี้หากเราต้องการบังคับ หรืออัพโหลดรูปเก็บไว้ใน Google Drive โดยจะอยากให้รูปภาพได้ตามขนาดตามที่ตนเองต้องการ เรียกว่า Resize image ประมาณนั้นสมมุติว่าผมอัพภาพขึ้นไปบน Google Drive แล้วต้องการเขียนโปรแกรมเพื่อลดขนาดของภาพที่ผมอัพ โดยใช้ Google script จะต้องทำตามขั้นตอนดังนี้ครับ

1) เข้าสู่ระบบ  Google     

image

2) กดที่ปุ่ม เก้าจุดมหัศจรรย์   

image

3) เลือก Google Drive    แล้วเข้าไป Folder ที่ต้องการสร้าง โปรแกรม Resize รู้ปภาพซึ่งเป็นโฟลเดอร์เดียวกับภาพที่เราอัพโหลดมาเก็บไว้เพื่อต้องการลดขนาด  เริ่มจากตามภาพ คือ ตอนนี้เราอยู่ที่ Google Drive อย่าลืมนะครับ คลิกที่ New  เลือก Folder แล้วสร้างชื่อโฟลเดอร์ ในที่นี้ ผมตั้งชื่อว่า Resize Image by GoogleScript -2018

image

4) คลิกที่ New   (ต้องอยู่ที่โฟลเดอร์ที่สร้างใหม่นะครับ) คลิกเลือก Google Script

image

5) ดำเนินการตั้งชื่อโปรแกรม หรือชื่อไฟล์   


image

6) กลับมาที่โฟลเดอร์ Google Drive   เรา ให้เราดำเนินการสร้างไฟล์ Google Docs เพื่อใช้ Application นี้ จัดการ Risize ให้ดำเนินการตามรูปภาพด้านล่างนี้ คือ คลิก New แล้วเลือก Google Docs จะได้ไฟล์ใหม่ดังภาพถัดมา

imageimage

อย่าลืม Copy id key ของไฟล์นี้ไปใช้งานด้วยครับ

image

7) จากนั้น ให้สลับมาที่ตัวสคริป เริ่ม เขียนโปรแกรมดังนี้ครับ  

function ResizeImage2018() {
 
   // กำหนดการเปิดใช้งาน google Docs โดยก็อปปี้ idKey จากไฟล์ Google Docs ของเรา
      var doc1 = DocumentApp.openById(" ????  ");
   // ดึง Id Key ของไฟล์รูปภาพที่เราอัพโหลดไปไว้ในโฟลเดอร์
      var image1  = "
https://drive.google.com/uc?export=view&id=?????"; 
   // สร้างตัวแปรเก็บไฟล์รูปภาพในรูปแบบของ blob
      var blob    = UrlFetchApp.fetch(image1).getBlob() ;
   // ตั้งค่าโฟลเดอร์ไว้สำหรับรองรับจัดเก็บไฟล์ใหม่ที่เราต้องการสร้าง 
      var folder = DriveApp.getFolderById("???????");

  // ทำการเช็คด้วยว่าในไฟล์มีภาพกี่ภาพ แล้วเราจะแทรกภาพไว้ภาพต่อจากสุดท้าย
      var lenImage = doc1.getBody().getImages().length;
   // ทำการแทรกภาพไปที่ตำแหน่ง 0 ของไฟล์ Google Docs และทำการ Resize ให้ได้ขนาดภาพตามที่เราต้องการ
      var insertImage =  insertImage = doc1.getBody().insertImage(lenImage,blob).setWidth("300").setHeight("300");
  
   // เมื่อดำเนินการแทรกภาพแล้ว รูปภาพที่เราอัพก็จะไปอยู่ที่ไฟล์ Google docs เรา สามารถเปิดดูได้
      lenImage = doc1.getBody().getImages().length-1 ; //เก็บค่าลำดับภาพที่สุดท้าย
   var imageResize = doc1.getBody().getImages()[lenImage]; // จากนั้น เรา ก็สร้างตัวแปร เก็บรูปภาพสุดท้าย
  
// ทำการสร้างภาพที่ดำเนินการ Resize ใหม่แล้วเป็นไฟล์ใหม่ ในโฟลเดอร์ที่เราเตรียมไว้
// สร้างเป็นไฟล์นามสกุลใดก็ได้ ตามฟังชั่น MimeType. (gif png jpg อื่นๆ )
// และสร้างชื่อไฟล์ตามด้วยชื่อเก่า
var name = "NewImage_"+blob.getName(); //ตามด้วยชื่อเก่าของไฟล์รูปภาพครับ
       var NewImage  =  folder.createFile(imageResize.getBlob().getAs(MimeType.JPEG)).setName(name) ;
  
   // จบ เราจะได้ไฟล์ที่ชื่อตามที่เราต้องการในโฟลเดอร์
}


Copy โค้ดด้านบน แล้ว วางบนพื้นที่  Script  จากนั้น    นำ ID Key ของไฟล์ Google Docs  ของไฟล์รูปภาพ  และโฟลเดอร์ วางแทน เครื่อง ?  สีแดง  จากนั้น ก็กดรันที่ปุ่ม สามเหลี่ยมสีดำ ดังภาพด้านล่างนี้ครับ จะเกิดกระบวนการ Autorization เพื่อให้ Acount หรือบัญชีของท่านเปิดการใช้งาน Script นี้

image

ดูที่ภาพด้านล่างครั้งแรกที่ดำเนินการ รันสคริป จะเกิด การไม่สามารถ verified หรือทำการตรวจสอบได้ให้คลิกที่ Advanced เพื่อแสดงว่าท่านคือ ผู้พัฒนาตัวจริง  คลิกที่ ALLOW นะครับ จากนั้น ก็กด รันอีกครั้ง

image

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

image

และสามารถตรวจสอบรูปภาพที่ไฟล์ Google Docs จะมีภาพล่าสุดที่เราทำการ ตามรูปภาพด้านล่างครับผม

image


สุดท้ายหวังว่าบทความนี้จะมีประโยชน์ สามารถนำไปต่อยอดกับท่านได้ในอนาคต  หากจะเป็นการดีก็ส่งคำทักทายสั้นๆเป็นกำลังใจกันมาตรงโพสต์ด้านล่าง
ขอบคุณครับผม มีเวลาจะเขียนบทความอีกนะครับผม






ับ

School Kills Creativity โรงเรียนฆ่าความคิดสร้างสรรค์

โรงเรียนฆ่าความคิดสร้างสรรค์

อดีตเด็กเรียนซ้ำชั้น อดีตเด็กที่เรียนรู้ได้ช้า แต่เขาเคยกล่าวเอาไว้ว่า
"Imagination is more important than knowledge"
"จินตนาการสำคัญกว่าความรู้"
          เรื่องทั้งหมดที่กล่าวมาคือ สิ่งที่เกี่ยวข้องกับบุคคลสำคัญของโลก เขาคนนั้นคือ "อัลเบิร์ต ไอน์สไตน์"
          "จินตนาการสำคัญกว่าความรู้" เป็นวลีอันอมตะที่อัลเบิร์ต ไอน์สไตน์ทิ้งเอาไว้ให้แก่โลก ความรู้ทำให้เราฉลาดขึ้น แต่มันจะเป็นสิ่งที่อยู่คงเดิมอย่างนั้น หากเราไม่นำความรู้นั้นไปใส่จินตนาการเพิ่มเติม เปรียบเทียบง่ายๆ ความรู้ก็เหมือนกับปัจจุบัน ขณะที่จินตนาการเปรียบได้กับอนาคต แม้แต่ผู้ที่ได้รับการยกย่องจากนักวิชาการ นักวิทยาศาสตร์ทั่วโลกว่าเป็นผู้ทรงความรู้อย่าง ไอน์สไตน์ ยังไม่อยากให้เราจบแค่ความรู้และให้ความสำคัญกับจินตนาการมากกว่า เพราะเป็นสิ่งที่สามารถสร้างสรรค์เรื่องราวใหม่ๆ ให้เกิดขึ้นบนโลกของเรามานักต่อนักแล้ว
          หนึ่งตัวอย่างที่ดี คือ ก่อนปี ค.ศ. 1903 ความรู้คือมนุษย์ไม่สามารถบินได้ และคงได้หัวเราะกันจนฟันโยกแน่ๆ ถ้าในปีนั้น อยู่ดีๆ มีใครมาบอกว่า "ในวันข้างหน้า มนุษย์จะบินขึ้นไปบนฟ้าได้" แต่พี่น้องตระกูลไรต์ ใช้จินตนาการมองเห็นสิ่งที่ต่างออกไป พวกเขาทำการบินขึ้นฟ้าครั้งแรกในวันที่ 17 ธันวาคม ค.ศ.1903 จนมาถึงวันนี้ทุกคนมีความรู้ใหม่ จากจินตนาการของพี่น้องตระกูลไรต์ว่า "มนุษย์สามารถบินขึ้นไปบนฟ้าได้ด้วยเครื่องบิน"
           เราใช้ความรู้ที่มีสร้างจินตนาการ แล้วใช้จินตนาการสร้างความรู้ใหม่ เพื่อที่จะได้จินตนาการต่อยิ่งสองสิ่งนี้พัฒนาควบคู่กันไปยิ่งดีมากๆ
           จากคำกล่าวข้างต้นของไอสไตน์ จะเป็นจริงหรือไม่ หรือเป็นไปได้มากน้อยขนาดไหนกัน เพราะเห็นกันพูดอยู่ว่า "ความรู้สำคัญกว่าอื่นใด" คนเราสามารถใช้ความรู้ทำทุกสิ่งทุกอย่างได้ คนที่มีความรู้ท่านเรียกว่า นักปราชญ์ แต่ทำไมไอสไตน์ถึงได้กล่าวในทางที่ตรงกันข้ามเช่นนั้น มีเหตุผลอื่นประการใดแอบแฝงหรือ หรือว่าเป็นการกล่าวขึ้นมาลอยๆ อย่างไม่มีเหตุผลเฉยๆ
          บางคนอาจมีข้อโต้แย้งว่า ความรู้ที่ทำให้โลกเราเกิดความเปลี่ยนแปลงไปต่างๆนานา เพราะไม่ว่ายุคไหนๆ ก็เกิดความเปลี่ยนแปลง อันเนื่องมาจากการที่คนในสังคมมีความรู้ต่างหาก ไม่ใช่เป็นเพราะการที่คนมีจินตนาการ ที่กล่าวเช่นนั้นก็ถูกแต่ก็ถูกไม่หมด แม้ว่าความรู้จะก่อให้เกิดความเปลี่ยนแปลงไปในทิศทางต่างๆ ในสังคมแต่ละยุคสมัยจนถึงในยุคสมัยปัจจุบัน เราจะอาศัยแต่เพียงความรู้อย่างเดียวก็ไม่สามารถก่อให้เกิดความเปลี่ยนแปลงนี้ได้ หากไม่อาศัยจินตนาการด้วยตามที่ได้กล่าวแล้วว่าจินตนาการและความรู้ต้องไปด้วยกันเสมอ ถึงแม้ว่าจินตนาการและความรู้มีความสำคัญพอๆกัน แต่โดยส่วนลึกแล้ว จินตนาการย่อมมีความสำคัญกว่า เพราะคนเราแม้ว่าตนเองจะมีความรู้ ต่อให้รู้มากขนาดไหนแต่ถ้าหากว่าไม่มีจินตนาการก็ไม่มีทางรู้เลยว่าจะเอาความรู้นั้นไปทำอะไร ไปใช้กับอะไร และเมื่อใช้ทำสิ่งนั้นแล้วผลที่ตามมาจะเป็นเช่นไร ก็ไม่สามารถที่จะใช้ความรู้นั้นๆ ให้เกิดผลได้เลย เข้ากับสำนวนไทยที่ว่า 


ขอบคุณ http://guru.sanook.com/9437/