2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using System.Diagnostics;
19 using System.Runtime.InteropServices;
20 using static Interop.Camera;
22 namespace Tizen.Multimedia
25 /// The class containing the captured still image.
27 public class StillImage
29 internal StillImage(IntPtr ptr)
31 var unmanagedStruct = Marshal.PtrToStructure<StillImageDataStruct>(ptr);
33 Format = unmanagedStruct.Format;
34 Resolution = new Size(unmanagedStruct.Width, unmanagedStruct.Height);
36 if (unmanagedStruct.Data != IntPtr.Zero && unmanagedStruct.DataLength > 0)
38 Data = new byte[unmanagedStruct.DataLength];
39 Marshal.Copy(unmanagedStruct.Data, Data, 0, (int)unmanagedStruct.DataLength);
43 Debug.Fail("CameraStillImage Data is null!");
47 if (unmanagedStruct.ExifLength > 0)
49 Exif = new byte[unmanagedStruct.ExifLength];
50 Marshal.Copy(unmanagedStruct.Exif, Exif, 0, (int)unmanagedStruct.ExifLength);
55 /// The pixel format of the still image.
57 /// <since_tizen> 3 </since_tizen>
58 public CameraPixelFormat Format { get; }
61 /// The resolution of the still image.
63 /// <since_tizen> 3 </since_tizen>
64 public Size Resolution { get; }
67 /// The buffer containing still image.
69 /// <since_tizen> 3 </since_tizen>
70 public byte[] Data { get; }
73 /// The Exif data describing additional metadata of still image.
74 /// Please refer Exif specification for more details.
76 /// <since_tizen> 3 </since_tizen>
77 public byte[] Exif { get; }