Difference between revisions of "Media"
(remove language stuff) |
|||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | |||
<!-- GIDEROSOBJ:Media --> | <!-- GIDEROSOBJ:Media --> | ||
− | ''' | + | '''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]]<br/> |
− | ''' | + | '''Available since:''' Gideros 2016.1<br/> |
− | === | + | === Description === |
* Get image from Camera, gallery or file system | * Get image from Camera, gallery or file system | ||
* Resize image | * Resize image | ||
Line 14: | Line 13: | ||
* And much more... | * And much more... | ||
− | === | + | === Example === |
Saves a picture on your phone or on your pc. | Saves a picture on your phone or on your pc. | ||
<source lang="lua"> | <source lang="lua"> | ||
Line 38: | Line 37: | ||
</source> | </source> | ||
− | === | + | === Notes === |
By resizing image you will actually resize the file of the image, so there is no going back to upscale it later. | By resizing image you will actually resize the file of the image, so there is no going back to upscale it later. | ||
<br/> | <br/> | ||
Line 47: | Line 46: | ||
{|- | {|- | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
− | === | + | === Methods === |
− | [[ | + | [[mediamanager:deleteFile]] ''deletes file at provided path''<br/><!--GIDEROSMTD:mediamanager:deleteFile(path) deletes file at provided path--> |
− | <!-- GIDEROSMTD:mediamanager:deleteFile(path) deletes file at provided path --> | + | [[mediamanager:getPicture]] ''selects picture from gallery''<br/><!--GIDEROSMTD:mediamanager:getPicture() selects picture from gallery--> |
− | [[ | + | [[mediamanager:isCameraAvailable]] ''returns true if you can get picture from camera''<br/><!--GIDEROSMTD:mediamanager:isCameraAvailable() returns true if you can get picture from camera--> |
− | <!-- GIDEROSMTD:mediamanager:getPicture() selects picture from gallery --> | + | [[mediamanager:playVideo]] ''plays video file in given path (bool force to watch till the end, or quit playing on tap)''<br/><!--GIDEROSMTD:mediamanager:playVideo(path, force) plays video file in given path (bool force to watch till the end, or quit playing on tap)--> |
− | [[ | + | [[mediamanager:postPicture]] ''adds picture from given path to gallery (or opens save file dialog on pc)''<br/><!--GIDEROSMTD:mediamanager:postPicture(path) adds picture from given path to gallery (or opens save file dialog on pc)--> |
− | <!-- GIDEROSMTD:mediamanager:isCameraAvailable() returns true if you can get picture from camera --> | + | [[mediamanager:takePicture]] ''allows user to provide picture input from camera''<br/><!--GIDEROSMTD:mediamanager:takePicture() allows user to provide picture input from camera--> |
− | [[ | + | [[mediamanager:takeScreenshot]] ''captures a screenshot of the app''<br/><!--GIDEROSMTD:mediamanager:takeScreenshot() captures a screenshot of the app--> |
− | <!-- GIDEROSMTD:mediamanager:playVideo(path, force) plays video file in given path (bool force to watch till the end, or quit playing on tap) --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:mediamanager:postPicture(path) adds picture from given path to gallery (or opens save file dialog on pc) --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:mediamanager:takePicture() allows user to provide picture input from camera --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:mediamanager:takeScreenshot() captures a screenshot of the app --> | ||
− | [[ | + | [[Media.new]] ''creates a new Media object with provided image''<br/><!--GIDEROSMTD:Media.new(path) creates a new Media object with provided image--> |
− | <!-- GIDEROSMTD:Media.new(path) creates a new Media object with provided image --> | + | [[Media.new]] ''creates a blank Media object with provided dimensions''<br/><!--GIDEROSMTD:Media.new(width, height) creates a blank Media object with provided dimensions--> |
− | [[ | ||
− | <!-- GIDEROSMTD:Media.new(width, height) creates a blank Media object with provided dimensions --> | ||
− | [[ | + | [[x_Media:copy|Media:copy(destination)]] ''makes a copy of an image''<br/><!--GIDEROSMTD:Media:copy(destination) makes a copy of an image--> |
− | <!-- GIDEROSMTD:Media:copy(destination) makes a copy of an image --> | + | [[x_Media:crop|Media:crop(x, y, width, height)]] ''crops an image''<br/><!--GIDEROSMTD:Media:crop(x, y, width, height) crops an image width and height from x and y point--> |
− | [[ | + | [[x_Media:drawFill|Media:drawFill(x, y, width, height, hexColor, alpha, blendAlpha)]] ''draws a filled rectangle on current image''<br/><!--GIDEROSMTD:Media:drawFill(x, y, width, height, hexColor, alpha, blendAlpha) draws a filled rectangle at x,y position with width,height dimensions and provided settings--> |
− | <!-- GIDEROSMTD:Media:crop(x, y, width, height) crops an image width and height from x and y point --> | + | [[x_Media:drawImage|Media:drawImage(x, y, media, alpha)]] ''draws another image on current one''<br/><!--GIDEROSMTD:Media:drawImage(x, y, media, alpha) draws another image on current one at specific x and y coordinates. You can provide either another media object or string path to image file--> |
− | [[ | + | [[x_Media:drawLine|Media:drawLine(x0, y0, x1, y1, hexColor, alpha, blendAlpha)]] ''draws a line on current image''<br/><!--GIDEROSMTD:Media:drawLine(x0, y0, x1, y1, hexColor, alpha, blendAlpha) draws a line from x0,y0 to x1,y1 with provided settings--> |
− | <!-- GIDEROSMTD:Media:drawFill(x, y, width, height, hexColor, alpha, blendAlpha) draws a filled rectangle at x,y position with width,height dimensions and provided settings--> | + | [[x_Media:drawText|Media:drawText(x, y, text, hexColor, fontSize, alpha)]] ''draws a text on current image''<br/><!--GIDEROSMTD:Media:drawText(x, y, text, hexColor, fontSize, alpha) draws a text at x,y coordinates with provided settings--> |
− | [[ | + | [[x_Media:flipHorizontal|Media:flipHorizontal()]] ''flips image horizontally''<br/><!--GIDEROSMTD:Media:flipHorizontal() flips image horizontally--> |
− | <!-- GIDEROSMTD:Media:drawImage(x, y, media, alpha) draws another image on current one at specific x and y coordinates. You can provide either another media object or string path to image file--> | + | [[x_Media:flipVertical|Media:flipVertical()]] ''flips image vertically''<br/><!--GIDEROSMTD:Media:flipVertical() flips image vertically--> |
− | [[ | + | [[x_Media:floodFill|Media:floodFill(x, y, hexColor, alpha, tolerance, blendAlpha)]] ''flood fills current image''<br/><!--GIDEROSMTD:Media:floodFill(x, y, hexColor, alpha, tolerance, blendAlpha) flood fills area with provided color based on tolerance to other colors--> |
− | <!-- GIDEROSMTD:Media:drawLine(x0, y0, x1, y1, hexColor, alpha, blendAlpha) draws a line from x0,y0 to x1,y1 with provided settings--> | + | [[x_Media:getHeight|Media:getHeight()]] ''returns the height of the image''<br/><!--GIDEROSMTD:Media:getHeight() returns the height of the image--> |
− | [[ | + | [[x_Media:getPath|Media:getPath()]] ''returns the path that was used to create the media''<br/><!--GIDEROSMTD:Media:getPath() returns the path that was used to create the media--> |
− | <!-- GIDEROSMTD:Media:drawText(x, y, text, hexColor, fontSize, alpha) draws a text at x,y coordinates with provided settings--> | + | [[x_Media:getPixel|Media:getPixel(x, y)]] ''returns r, g, b, a values of pixel at x,y coordinate''<br/><!--GIDEROSMTD:Media:getPixel(x, y) returns r, g, b, a values of pixel at x,y coordinate (RGB are in range of 0 to 255, alpha is in range of 0 to 1)--> |
− | [[ | + | [[x_Media:getRotation|Media:getRotation()]] ''returns current rotation''<br/><!--GIDEROSMTD:Media:getRotation() returns previously set rotation--> |
− | <!-- GIDEROSMTD:Media:flipHorizontal() flips image horizontally --> | + | [[x_Media:getWidth|Media:getWidth()]] ''returns the width of the image''<br/><!--GIDEROSMTD:Media:getWidth() returns the width of the image--> |
− | [[ | + | [[x_Media:resize|Media:resize(newWidth, newHeight, fixed, crop)]] ''resizes image width and height''<br/><!--GIDEROSMTD:Media:resize(newWidth, newHeight, fixed, crop) resizes image width and height, if fixed is true image is resized with fixed aspect ratio and takes crop value into account (cropping image if true or letterbox resize if false)--> |
− | <!-- GIDEROSMTD:Media:flipVertical() flips image vertically--> | + | [[x_Media:resizeHeight|Media:resizeHeight(newHeight, fixed)]] ''resizes image height''<br/><!--GIDEROSMTD:Media:resizeHeight(newHeight, fixed) resizes image height, if fixed is true image is resized with fixed aspect ratio--> |
− | [[ | + | [[x_Media:resizeWidth|Media:resizeWidth(newWidth, fixed)]] ''resizes image width''<br/><!--GIDEROSMTD:Media:resizeWidth(newWidth, fixed) resizes image width, if fixed is true image is resized with fixed aspect ratio--> |
− | <!-- GIDEROSMTD:Media:floodFill(x, y, hexColor, alpha, tolerance, blendAlpha) flood fills area with provided color based on tolerance to other colors--> | + | [[x_Media:save|Media:save()]] ''saves the changes made to file''<br/><!--GIDEROSMTD:Media:save() saves the changes made to file--> |
− | [[ | + | [[x_Media:setPixel|Media:setPixel(x, y, r, g, b, a)]] ''sets r, g, b, a values to pixel at x,y coordinate''<br/><!--GIDEROSMTD:Media:setPixel(x, y, r, g, b, a) sets r, g, b, a values to pixel at x,y coordinate (RGB are in range of 0 to 255, alpha is in range of 0 to 1)--> |
− | <!-- GIDEROSMTD:Media:getHeight() returns the height of the image --> | + | [[x_Media:setPixel|Media:setPixel(x, y, hex, a, blendAlpha)]] ''sets hex color and alpha values to pixel at x,y coordinate''<br/><!--GIDEROSMTD:Media:setPixel(x, y, hex, a, blendAlpha) sets hex color and alpha values to pixel at x,y coordinate (alpha is in range of 0 to 1)--> |
− | [[ | + | [[x_Media:setRotation|Media:setRotation(angle)]] ''rotates image''<br/><!--GIDEROSMTD:Media:setRotation(angle) rotates image to provided angle in degrees--> |
− | <!-- GIDEROSMTD:Media:getPath() returns the path that was used to create the media --> | + | [[x_Media:trim|Media:trim(hexColor)]] ''trims current image''<br/><!--GIDEROSMTD:Media:trim(hexColor) trims image by provided background color, if color is not provided, uses top left pixel to crop--> |
− | [[ | ||
− | <!-- GIDEROSMTD:Media:getPixel(x, y) returns r, g, b, a values of pixel at x,y coordinate (RGB are in range of 0 to 255, alpha is in range of 0 to 1) --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Media:getRotation() returns previously set rotation --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Media:getWidth() returns the width of the image --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Media:resize(newWidth, newHeight, fixed, crop) resizes image width and height, if fixed is true image is resized with fixed aspect ratio and takes crop value into account (cropping image if true or letterbox resize if false) --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Media:resizeHeight(newHeight, fixed) resizes image height, if fixed is true image is resized with fixed aspect ratio --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Media:resizeWidth(newWidth, fixed) resizes image width, if fixed is true image is resized with fixed aspect ratio --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Media:save() saves the changes made to file --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Media:setPixel(x, y, r, g, b, a) sets r, g, b, a values to pixel at x,y coordinate (RGB are in range of 0 to 255, alpha is in range of 0 to 1) --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Media:setPixel(x, y, hex, a, blendAlpha) sets hex color and alpha values to pixel at x,y coordinate (alpha is in range of 0 to 1) --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Media:setRotation(angle) rotates image to provided angle in degrees --> | ||
− | [[ | ||
− | <!-- GIDEROSMTD:Media:trim(hexColor) trims image by provided background color, if color is not provided, uses top left pixel to crop--> | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
− | === | + | === Events === |
− | [[ | + | [[Event.MEDIA_RECEIVE]] ''(e.path) path to image''<br/><!--Event.MEDIA_RECEIVE mediaReceive--> |
− | [[ | + | [[Event.MEDIA_CANCEL]] ''user cancelled media input''<br/><!--Event.MEDIA_CANCEL mediaCancel--> |
− | [[ | + | [[Event.VIDEO_COMPLETE]] ''user completed watching video''<br/><!--Event.VIDEO_COMPLETE videoComplete--> |
− | === | + | === Constants === |
|} | |} | ||
{{GIDEROS IMPORTANT LINKS}} | {{GIDEROS IMPORTANT LINKS}} |
Revision as of 23:48, 22 December 2020
Supported platforms:
Available since: Gideros 2016.1
Description
- Get image from Camera, gallery or file system
- Resize image
- Make copy of an image
- Take screenshots
- Play videos (for cutscenes)
- Manipulate pictures (getting/setting pixels)
- And much more...
Example
Saves a picture on your phone or on your pc.
require "media"
-- draw your gfx
local source = Pixel.new(0xff00ff, 1, 128, 128)
-- create a render target and draw to it
local rt = RenderTarget.new(source:getWidth(), source:getHeight())
rt:draw(source)
-- save your render target to gideros documents folder
local myfilepath = "|D|mysavedpicture2.png"
rt:save(myfilepath)
-- create a new media and save your gfx
local media = Media.new(myfilepath)
-- android saved path = internal storage/pictures !!! NEED permission write external storage !!!
mediamanager:postPicture(myfilepath)
-- show your gfx on stage
local mybmprt = Bitmap.new(Texture.new(myfilepath))
mybmprt:setPosition(64, 64)
stage:addChild(mybmprt)
Notes
By resizing image you will actually resize the file of the image, so there is no going back to upscale it later.
getPicture method gives you copies of the image, so you won't harm the original.
The dimensions when resizing are all actual dimensions of the image and not logical dimensions in your project.
Methodsmediamanager:deleteFile deletes file at provided path Media.new creates a new Media object with provided image Media:copy(destination) makes a copy of an image |
EventsEvent.MEDIA_RECEIVE (e.path) path to image Constants |