Menu

Tuesday, June 18, 2013

[AS3] วิธีแก้ข้อผิดพลาด:ใบรับรองหมดอายุหลังจากเพิ่งสร้างสำหรับ AIR Player
[AS3] How to Fix Error: Certificate Expired after Creation for AIR Player

ข้อผิดพลาดแสดงดังนี้
The error is shown as


เพื่อแก้ข้อผิดพลาด ทำตามขั้นตอนข้างล่าง
To fix it, follow these steps

[AS3] วิธีการ Publish สำหรับ AIR Player
[AS3] How to Publish for AIR Player

ไปที่ File แล้วเลือก Publish Settings...
Go to File then select Publish Settings...

[AS3] วิธีการบันทึกภาพ โดยไม่แสดงไฟล์ไดอะล็อก
[AS3] How to Save an Image without File Dialog

ถ้าใช้ Adobe Flash Player ไม่สามารถทำได้
If Adobe Flash Player is used, it is impossible.

อย่างไรก็ตาม มันสามารถที่จะทำได้สำหรับ Adobe Air Player
However, it is possible for Adobe Air Player

สมมติว่า imgByteData เป็นตัวแปรประเภท ByteArray ของภาพ PNG ที่จะบันทึก
Assume that imgByteData is ByteArray of PNG image which will be saved
  1. import flash.filesystem.*;
  2. ...
  3. var fs:FileStream=new FileStream();
  4. fs.open(new File("C:/img.png"), FileMode.WRITE);
  5. fs.writeBytes(imgByteData);
  6. fs.close();

[AS3] วิธีการบันทึกสกรีนเป็นภาพ
[AS3] How to Save Screen to an Image

ขั้นแรกอ่านข้อมูลบิทแมพจากสกรีน
First, get bitmap data from screen
  1. import flash.display.*;
  2. import flash.utils.ByteArray;
  3. ...
  4. var bitmapData:BitmapData = new BitmapData(this.width, this.height);
  5. bitmapData.draw(this);

ถัดมาทำการเข้ารหัสข้อมูลบิทแมพด้วยตัวเข้ารหัสภาพ
Next, encode bitmap data with image encoder

Monday, June 17, 2013

[C#] ความแตกต่างระหว่างเมธอดที่ใช้ new กับ override
[C#] What Different between new and override Method

override - เมธอดของคลาสแม่ถูกเขียนทับในคลาสลูก
override - a method of a base class is overridden in a derived class

new - เมธอดของคลาสแม่ถูกซ่อนเอาไว้จากคลาสลูก โดยการประกาศเมธอดที่เหมือนกับคลาสแม่ในคลาสลูก
new - a method of a base class is hidden in a derived class by defining the same method of a base class in a derived class

ถ้าไม่ได้กำหนดคีย์เวิร์ดว่าเป็น override หรือ new ค่าตั้งต้นจะเป็น new
If you do not specify either override or new keyword, the default keyword is new

Wednesday, June 12, 2013

[Batch Script] FOR Syntax

syntax-FOR-Files
       FOR %%parameter IN (set) DO command

syntax-FOR-Folders
       FOR /D %%parameter IN (folder_set) DO command
 
 syntax-FOR-List of numbers  
       FOR /L %%parameter IN (start,step,end) DO command

[Batch Script] วิธีเปลี่ยนค่าตัวแปรในลูป FOR
[Batch Script] How to Change Variable in FOR Loop

เนื่องจากลูป FOR ถูก interpret ตัวแปรในลูป FOR จึงไม่สามารถเปลี่ยนค่าและใช้ค่าที่ถูกเปลี่ยนในลูปเดียวกันได้
Due to FOR loop is interpreted, we cannot change a variable within a FOR loop and use that changed variable in the same loop

เราจึงต้องใช้ Delayed variable expansion ดังนั้นใส่คำสั่งนี้ก่อนลูป FOR
Delayed variable expansion is needed so add this command before FOR loop 
setlocal enabledelayedexpansion

แล้วใส่คำสั่งนี้ใต้ลูป FOR
Then add this command below FOR loop
endlocal 

[Batch Script] เปลี่ยนชื่อไฟล์ทั้งหมดในแฟ้ม
[Batch Script] Rename All Files in Folder

  1. @echo off
  2. set OpList=%TEMP%\%RANDOM%.bat
  3. copy nul "%OpList%"
  4. set /a num=1
  5. setlocal enabledelayedexpansion
  6. for %%F in (%1\*) do (     
  7.      echo ren "%%F" "%2!num!.jpg" >> "%OpList%"
  8.      set /a num=num+1
  9. )
  10. endlocal
  11. call "%OpList%"
  12. del "%OpList%"
  13. pause

Tuesday, June 11, 2013

[AS3] วิธีการอ่านไฟล์ XML
[AS3] How to Read XML File

ขั้นแรก สร้างไฟล์ข้อความชื่อ test.xml แล้วใส่ข้อความตามด้านล่าง
First, create XML file named test.xml and add text as below
  1. <document>
  2.   <head>Header</head>
  3.   <body>
  4.     <content>
  5.       <no>1</no>
  6.       <text>Content 1</text>
  7.     </content>
  8.     <content>
  9.       <no>2</no>
  10.       <text>Content 2</text>
  11.     </content>
  12.   </body>
  13.   <foot>Footer</foot>
  14. </document>

Saturday, June 8, 2013

[OpenCV] วิธีการบันทึกไฟล์วิดีโอ
[OpenCV] How to Write/Save Video File

ขั้นแรก นิยามตัวแปรที่ใช้เขียนไฟล์วิดีโอตามด้านล่างนี้
First, define the video writer as follow
CvVideoWriter* writer = cvCreateVideoWriter(filepath,fourccfpsframe_size, iscolor);

โดยที่
filepath เป็นที่อยู่ของวิดีโอที่ต้องการจะบันทึก ในที่นี้ใช้นามสกุล avi
fourcc เป็น codec ของวิดีโอที่จะบันทึก ในที่นี้ใช้ CV_FOURCC('M','J','P','G') 
where
filepath is the path of output video file, in this case, file extension is avi
fourcc is the codec of video, in this case, CV_FOURCC('M','J','P','G') is used

ขั้นที่สอง เขียนเฟรมแต่ละเฟรมไปยังวิดีโอที่บันทึก
Second, write frame to output video as follow
cvWriteFrame(writer, frame);

ขั้นสุดท้าย ปลดปล่อยหน่วยความจำสำหรับตัวแปรที่ใช้เขียนไฟล์วิดีโอ
Last, release the video writer 
cvReleaseVideoWriter(&writer);

Friday, June 7, 2013

[OpenCV] วิธีการตรวจจับใบหน้า โดยใช้ Haar Cascade Classifier
[OpenCV] How to Detect Face using Haar Cascade Classifier

สมมติว่า img เป็นภาพสีสำหรับตรวจจับใบหน้า
Assume that img is color image for face detection

  1. const char* cascade_name = "haarcascade_frontalface_alt.xml";
  2. static CvHaarClassifierCascade* cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name );
  3. static CvMemStorage* storage = cvCreateMemStorage(0);

  4. CvSeq* detectFace(IplImage* img){
  5.      
  6.      static IplImage* gray=0;
  7.      if(gray && (gray->width!=img->width || gray->height!= img->height)){
  8.           cvReleaseImage(&gray);
  9.           gray=0;
  10.      }
  11.      if(!gray)
  12.           gray=cvCreateImage(cvGetSize(img),8,1);

  13.      cvCvtColor(img,gray,CV_BGR2GRAY);
  14.      cvClearMemStorage( storage );
  15.      CvSeq* faces = cvHaarDetectObjects( gray, cascade, storage, 1.1, 3, CV_HAAR_DO_CANNY_PRUNING, cvSize(100, 100) );
  16.      return faces;
  17. }

[OpenCV] วิธีเล่นวิดีโอจากไฟล์
[OpenCV] How to Play Video From File

  1. CvCapture* capture=cvCreateFileCapture("E:/Wildlife.wmv");
  2. IplImage* img;
  3. char c;

  4. double frame_width=cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH );
  5. double frame_height=cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT  );
  6. double fps=cvGetCaptureProperty(capture,CV_CAP_PROP_FPS  );
  7. printf("%f %f %f",frame_width, frame_height,fps);

  8. cvNamedWindow("test",1);
  9. img=cvQueryFrame(capture);
  10. while(img){
  11. cvShowImage("test",img);
  12. c=cvWaitKey(30);
  13. if(c==27)
  14. break;
  15. img=cvQueryFrame(capture);
  16. }
  17. cvReleaseCapture(&capture);

[OpenCV] วิธีการดึงภาพจากกล้อง
[OpenCV] How to Capture Image From Camera

  1. CvCapture* capture=cvCreateCameraCapture(0);
  2. IplImage* img;
  3. char c;

  4. cvNamedWindow("test",1);
  5. while(true){
  6.   img=cvQueryFrame(capture);
  7.   cvShowImage("test",img);
  8.   c=cvWaitKey(30);
  9.   if(c==27)
  10.     break;
  11. }
  12. cvReleaseCapture(&capture);

Tuesday, June 4, 2013

[AS3] วิธีการเล่นเสียง
[AS3] How to Play Sound

ใช้โค้ดตามด้านล่าง
Use the code below
  1. var snd:Sound = new Sound();
  2. snd.load(new URLRequest('sound path'));
  3. snd.play();

หมายเหตุ: อย่าลืม import ตามด้านล่าง
Notice: you must import as below
import flash.media.Sound;
import flash.net.URLRequest; 

[AS3] วิธีการโหลดภาพเข้า Movie Clip
[AS3] How to Load Image into Movie Clip

ในคอนสตรัคเตอร์ของคลาส movie clip ให้ใส่โค้ดตามด้านล่าง
In the constructor of movie clip class, add the code as below
  1. var loader:Loader = new Loader();
  2. loader.load(new URLRequest('image path'));
  3. addChild(loader);

รูปภาพจะถูกโหลดจาก image path และถูกใส่เป็น child ใน movie clip นี้
The image will be loaded from image path and added to be child of this movie clip

หมายเหตุ: อย่าลืม import flash.net.URLRequest;
Notice: you must import flash.net.URLRequest;

Monday, June 3, 2013

[AS3] วิธีการอ่านแถวของข้อความจากไฟล์ข้อความเข้าอาเรย์
[AS3] How to Read Line from Text File to Array

ขั้นแรก สร้างไฟล์ข้อความชื่อ line2array.txt แล้วใส่ข้อความตามด้านล่าง
First, create text file named line2array.txt with add text below
facebook
twitter
google plus
internet explorer
html5

[AS3] วิธีโหลดตัวแปรจากไฟล์ข้อความ
[AS3] How to Load Variables from Text File

ขั้นแรก สร้างไฟล์ข้อความชื่อ variables.txt แล้วใส่ข้อความตามด้านล่าง
First, create text file named variables.txt with add text below
myTitle=Test&myBody=This is test&myURL=www.google.com

รูปแบบของข้อความจะเป็น ชื่อตัวแปร=ค่าของตัวแปร และคั่นด้วยเครื่องหมาย &
The format will be variable_name=variable_value and separated by &

Sunday, June 2, 2013

[System] วิธีการจัดการพาร์ทิชั่นบน Windows 7
[System] How to Manage Partition on Windows 7

ดาวน์โหลด Partition Assistant จาก http://www.disk-partition.com/download-home.html
Download Partition Assistant from http://www.disk-partition.com/download-home.html


ในกรณีนี้ ผมเลือก AOMEI Partition Assistant Standard 5.2 (PA Standard)
In this case, I select AOMEI Partition Assistant Standard 5.2 (PA Standard)