2013-07-19 90 views
3

我是新來的電暈SDK,但我設法使用下面的代碼來捕捉我的應用場景郵寄屏幕捕捉圖像:如何利用電暈SDK

local function captureArea() 
    local myCaptureImage = display.captureBounds(display.currentStage.contentBounds, true) 
    myCaptureImage:removeSelf() 
    myCaptureImage = nil 
end 
bg:addEventListener("tap",captureArea) 

這完美的作品。

現在我需要通過電子郵件向我的朋友發送捕獲的圖像(使用特定名稱,例如:screen_1.png)。我已使用Composing E-mail and SMS作爲參考,但我無法理解如何將此保存的圖像添加到郵件選項的attachment字段中。

請給我一個適當的解決方案,我該如何通過電子郵件附上和發送上面保存的圖像。

+0

你確定嗎,你可以將拍攝的圖像保存到temproray目錄或文檔目錄中?我以前做過類似的捕捉功能,但我沒有使用captureBounds函數 我想你應該使用display.save(view,「screen_1.png」,system.DocumentsDirectory),其中view代表你想要保存的顯示組。保存到文檔目錄後,您可以使用撰寫電子郵件教程 –

+0

@DoğancanArabacı:是的,上面的代碼是完美的。我已經測試過它。並感謝您的建議tooooooo ... – Thampuran

回答

1

display.captureBounds適用於將整個屏幕保存到目錄。但它通常會保存上次索引增加的文件。所以可能難以正確讀取它們。所以我更喜歡display.save。但這不是一條直線。

這樣做,你必須:

  • 首先創建一個localgroup
  • 然後add屏幕對象到該組。
  • Return顯示組
  • 使用display.save保存顯示的整個組。
  • 創建郵件選項,並從baseDirectory
  • 呼叫mail Popup

我給這裏的樣本添加attachment圖像:

-- creating the display group -- 
local localGroup = display.newGroup() 

-- creating display objects and adding it to the group -- 
local bg = display.newRect(0,0,_w,_h) 
bg.x = 160 
bg.y = 240 
bg:setFillColor(150) 
localGroup:insert(bg) 

local rect = display.newRect(0,0,50,50) 
rect.x = 30+math.random(260) 
rect.y = 30+math.random(420) 
localGroup:insert(rect) 

-- Then do as follows -- 
local function takePhoto_andSendMail() 
    -- take screen shot to baseDirectory -- 
    local baseDir = system.DocumentsDirectory 
    display.save(localGroup, "myScreenshot.jpg", baseDir) 

    -- Create mail options -- 
    local options = 
    { 
    to = { "[email protected]",}, 
    subject = "My Level", 
    body = "Add this...", 
    attachment = 
    { 
     { baseDir=system.DocumentsDirectory, filename="myScreenshot.jpg", type="image" }, 
    }, 
    } 

    -- Send mail -- 
    native.showPopup("mail", options) 
end 
rect:addEventListener("tap",takePhoto_andSendMail) 

這將做到這一點...

保持編碼........ :)

+0

哇。這是我正在尋找的。非常感謝krs ... – Thampuran