ตุลาคม 21, 2019, 01:01:38 am *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
   หน้าแรก   ช่วยเหลือ เข้าสู่ระบบ สมัครสมาชิก  
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: SDWWinCEImage v1.0.0 (The Initial Version)  (อ่าน 3054 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
ShadowMan
Administrator
Hero Member
*****
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 8272


ShadowWares


| |
« เมื่อ: กรกฎาคม 01, 2012, 11:03:02 am »

หลังจากที่ได้ปล่อย Library เกี่ยวกับ Image Processing สำหรับ PC เวอร์ชั่นไป
ตอนนี้ถึงเวลาที่ต้องปล่อยเวอร์ชั่นสำหรับ Mobile Device สังกัดค่าย Windows กันบ้าง
จุดเริ่มต้นของการพัฒนา Library ตัวนี้คือ เพื่อใช้กับ Windows CE6.0 แต่เนื่องจาก
โปรแกรมทุกบรรทัดเขียนขึ้นด้วย Native C/C++ และ Native Win32 จึงสามารถทำงาน
ได้กับทุก OS ที่สร้างขึ้นโดย Microsoft และไม่ต้องการ .NET ใดๆ ในการทำงาน
Library พัฒนาด้วย C++ ฟังก์ชั่นต่างๆ ห่อไว้ด้วย class ในนาม SDWWinCEImage
การใช้งานไม่ได้มีความแตกต่างจากการใช้งาน Object ของ Class ทั่วไป
สำหรับผู้ที่ไม่มีความรู้เรื่อง C++ คงต้องรอชม VDO ตัวอย่างการใช้งานในโอกาศต่อไป
ส่วนผู้ที่เชี่ยวชาญ C++ และมีประสบการณ์การ application บน Mobile Device หรือ
Windows CE อยู่แล้ว โหลดไปใช้ได้เลยครับ ทั้งนี้ต้องมีความรู้เรื่อง Bitmap แล้วในระดับดี
ไม่เช่นนั้นอาจจะตีความเชื่อฟังก์ชั่น พารามิเตอร์ และการคืนค่าของฟังก์ชั่นไม่ออก ซึ่งนั่นหมาย
ความว่า ความรู้เรื่อง C++ อย่างเดียวไม่พอเพียง

สำหรับการใช้งานที่ง่ายกว่า (ใช้แบบไม่ต้องมีความรู้) จะปล่อยออกมาในเวอร์ชั่นต่อไป
เวอร์ชั่นต่อไปที่ว่านี้ ฟังก์ชั่นส่วนมาก จะสืบทอดมาจากเวอร์ชั่นนี้ เพราะนี่คือ core-library


Download Library (SDWWinCEImage.h, SDWWinCEImage.lib, SDWWinCEImage.dll -- 4.94KB)

** ก่อนใช้งานให้เพิ่ม **
Code:
#define SDW_WINCE_API __declspec(dllimport)  
ไว้หลังจาก structure _SDWImage (อยู่ในไฟล์ SDWWinCEImage.h) จาก code ด้านล่างคือบรรทัด 23

รายละเอียดของ Library
Code: (c)

/************************************************************************************
* SDWWinCEImage v1.0.0 - Initial version. Used as a main class/core-function      *
* This library includes SDWWinCEImage.lib, SDWWinCEImage.dll and SDWWinCEImage.h   *
* They are written and compiled in Visual C++ in Windows CE environment and used   *
* as a core library for image processing and computer visoion applications         *
* Tested in mini2440, the ARM9-based minicomputer, with Windows CE 5.0 and 6.0      *
* For the mobile devices, it is tesed on HP-iPAQ with Windows mobile 2003         *
* Other OSes of Windows mobile devices are tested on simulators                  *
*************************************************************************************
*                    By Santi Nuratch; shadowwares.com                         *
*                          Last Update: 23 July, 2012                         *
*************************************************************************************/
#include "windows.h"
#include "commdlg.h"

typedef struct _SDWImage{
   unsigned long   width;      // Image width
   unsigned long   height;      // Image height
   unsigned short   bits;      // Bits per pixel
   unsigned int   Bytes;      // Bytes per row/scanline
   unsigned char   *pdata;      // Pointer to bitmap data
}SDWImage;
#define SDW_WINCE_API __declspec(dllimport)

// This class is exported from the SDWWinCEImage.dll
class SDW_WINCE_API SDWWinCEImage {

private:
   //--- They are used for drawing functions
   // Removed, all of them are not allowed to access by user
public:
   //--- Library version info
   int SDWWinCEImageVersion;
   
   //--- CDefault constructor
   SDWWinCEImage();
   
   //--- Destructor
   ~SDWWinCEImage();

   //--- Set top-left position
   void  SetDrawPosition(int Top, int Left);

   //--- Set top-left position
   void SetDrawPosition(POINT TopLeft);

   //--- Set Width and Height of target DC
   void SetDrawSize(int Width, int Height);

   //--- Set region of target DC
   void SetDrawRect(RECT Rect);

   //--- Get top-left position
   void GetDrawPosition(int *pTop, int *pLeft);

   //--- Get Width and Height of target DC
   void GetDrawSize(int *pWidth, int *pHeight);

   //--- Get top-left position as a point
   POINT * GetDrawPosition(POINT *pTopLeft);

   //--- Get region of target DC
   RECT *GetDrawRect(RECT *pRect);

   //--- Draw a bitmap to target
   int DrawBitmap(HWND hWnd, HBITMAP hBitmap);

   //--- Read a bitmap from file
   HBITMAP ReadBitmap(TCHAR *FileName);

   //--- Draw a bitmap read from file to target
   int DrawBitmap(HWND hWnd, TCHAR *FileName);

   //--- Open Bitmap file by OpenDialog.
   //--- If the FileName!=NULL it acts like the ReadBitmap()
   HBITMAP OpenBitmap(TCHAR *FileName);

   //--- Get bitmap object, copy bitmap info to bmp structure
   BITMAP * GetBitmapObject(HBITMAP hBitmap, BITMAP *bmp);

   //--- Get bitmap./image width
   unsigned long GetBitmapWidth(HBITMAP hBitmap);

   //--- Get bitmap./image height
   unsigned long GetBitmapHeight(HBITMAP hBitmap);

   //--- Bit per pixel
   unsigned long GetBitmapBpp(HBITMAP hBitmap);

   //--- Bytes per row
   unsigned long GetBitmapBpr(HBITMAP hBitmap);

   //--- Get bitmap pointer, the pointer to row data
   BYTE * GetBitmapPointer(HBITMAP hBitmap);

   //--- This function allocates memory, DO NOT FORGET to delete it
   BYTE * GetBitmapData(HBITMAP hBitmap);

   //--- Write raw bitmap/data to HBITMAP object
   HBITMAP PutBitmapData(HBITMAP hBitmap, BYTE *data);
   
   //--- Convert bitmap to SDWImage format
   SDWImage * BitmapToSDWImage(HBITMAP hBitmap);
   
   //--- Save SDWImage to file
   void SaveSDWImageAsBitmap(SDWImage *sdwImg, WCHAR *FileName);
   
   //--- Free memory used by SDWImage object
   void DeleteSDWImage(SDWImage **sdwImg);
};
บันทึกการเข้า

By SDW: Do No Wrong Is Do Nothing
          If you want to increase your success rate, double your failure rate
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป: