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 /// <since_tizen> 4 </since_tizen>
28 public class StillImage
30 internal StillImage(IntPtr ptr)
32 var unmanagedStruct = Marshal.PtrToStructure<StillImageDataStruct>(ptr);
34 Format = unmanagedStruct.Format;
35 Resolution = new Size(unmanagedStruct.Width, unmanagedStruct.Height);
37 if (unmanagedStruct.Data != IntPtr.Zero && unmanagedStruct.DataLength > 0)
39 Data = new byte[unmanagedStruct.DataLength];
40 Marshal.Copy(unmanagedStruct.Data, Data, 0, (int)unmanagedStruct.DataLength);
44 Debug.Fail("CameraStillImage Data is null!");
48 if (unmanagedStruct.ExifLength > 0)
50 Exif = new byte[unmanagedStruct.ExifLength];
51 Marshal.Copy(unmanagedStruct.Exif, Exif, 0, (int)unmanagedStruct.ExifLength);
56 /// The pixel format of the still image.
58 /// <since_tizen> 4 </since_tizen>
59 public CameraPixelFormat Format { get; }
62 /// The resolution of the still image.
64 /// <since_tizen> 4 </since_tizen>
65 public Size Resolution { get; }
68 /// The buffer containing the still image.
70 /// <since_tizen> 4 </since_tizen>
71 public byte[] Data { get; }
74 /// The Exif data describing additional metadata of still image.
75 /// Please refer Exif specification for more details.
77 /// <since_tizen> 4 </since_tizen>
78 public byte[] Exif { get; }