C # рдореЗрдВ EXIF тАЛтАЛрдЬрд┐рдпреЛрдЯреИрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛

рдЬрд┐рдпреЛрдЯреИрдЧрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдорд┐рд▓рд╛ - рддрд╛рдХрд┐ рдХрдо рд▓реЛрдЧ рдПрдХ рд╣реА рд░реЗрдХ рдкрд░ рдЪрд▓реЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрди рдореБрджреНрджреЛрдВ рдкрд░ рдЗрддрдиреА рд╕рдордЭрджрд╛рд░ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдпрд╣ рдмрддрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдЬрд┐рдпреЛрдЯреИрдЧрд┐рдВрдЧ рдпрд╛ EXIF рдХреНрдпрд╛ рд╣реИ , рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди C # рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ EXIF тАЛтАЛрдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдЬреЛ рдореИрдВ рдмрддрд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБред рд╣рдо рдлреЛрдЯреЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдЬреИрд╕рд╛ рдХрд┐, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, JpegBitmapDecoder рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡рд┐рдзрд┐ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдИ рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
using System.IO;
using System.Globalization;
using System.Windows.Media.Imaging;


* This source code was highlighted with Source Code Highlighter .

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдлреЛрдЯреЛ рдлрд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ:
FileStream Foto = File .Open(s, FileMode .Open, FileAccess.Read); // s
BitmapDecoder decoder = JpegBitmapDecoder.Create(Foto, BitmapCreateOptions.IgnoreColorProfile, BitmapCacheOption.Default); //"" decoder
BitmapMetadata TmpImgEXIF = (BitmapMetadata)decoder.Frames[0].Metadata.Clone(); //


* This source code was highlighted with Source Code Highlighter .

рдмрд╣реБрдд рдмрд╛рд░ рдЖрдкрдХреЛ рдЪрд┐рддреНрд░ рдХреА рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдк EXIF рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ , рддреЛ рд╡рд╣рд╛рдВ рдХрдИ рддрд┐рдерд┐рдпрд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ (рдЫрд╡рд┐, рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрдорд╛рдг, рдбрд┐рдЬрд┐рдЯрд▓реАрдХрд░рдг, рдЬреАрдкреАрдПрд╕, рдЖрджрд┐ рдХреА рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп), рдФрд░ рдпрд╣ рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдХреИрдорд░рд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдХрд┐рд╕рдиреЗ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рд╕реЗ рдкрд░реЗрд╢рд╛рди рди рд╣реЛрдВ - рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред BitmapMetadata
рд╢реВрдЯрд┐рдВрдЧ рдХреА рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрдг рд╣реИрдВ, рд╕рд╛рде рд╣реА рдХреБрдЫ рдЕрдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрдорд░рд╛ рдореЙрдбрд▓)ред
DateTime DateOfShot = Convert .ToDateTime(TmpImgEXIF.DateTaken);

* This source code was highlighted with Source Code Highlighter .

рдЕрдм рд╕реАрдзреЗ рдЬрд┐рдпреЛрдЯреИрдЧ рд░рд┐рдХреЙрд░реНрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ (рдХреЗрд╡рд▓ EXIF) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, BitmapMetadata рдореЗрдВ SetQuery рдФрд░ GetQuery рд╡рд┐рдзрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ ред рд╡реЗ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЗрддреЗ рд╣реИрдВ, рдЬреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдлрд╝реАрд▓реНрдб рдХреЛ рдкрдврд╝рдирд╛ рдпрд╛ рд▓рд┐рдЦрдирд╛ рд╣реИред рдХрд┐рд╕реА рдлрд╝реАрд▓реНрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП RemoveQuery рднреА рд╣реИред рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ: EXIF тАЛтАЛрдореЗрдВ рдПрдХ рдЪрд┐рд╣реНрди рдЬреЛрдбрд╝реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрддреНрддрд░ рдЕрдХреНрд╖рд╛рдВрд╢ рд╣реИред EXIF рдореЗрдВ, рдпрд╣ ID = 1 рдХреЗ рд╕рд╛рде GPS рдЕрдиреБрднрд╛рдЧ рдлрд╝реАрд▓реНрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ C # рдореЗрдВ, рдЕрдиреБрд░реЛрдз "/ app1 / ifd / gps / {ushort = 1}" рд╣реИ (рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдмрд╛рдж рдореЗрдВ рдпреЗ рдЕрдиреБрд░реЛрдз рдорд┐рд▓реЗрдВрдЧреЗ) рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдпрджрд┐ рдЙрддреНрддрд░реА рдЕрдХреНрд╖рд╛рдВрд╢ "рдПрди", рдФрд░ рджрдХреНрд╖рд┐рдг - "рдПрд╕" рд▓рд┐рдЦрд╛ рд╣реИ:
TmpImgEXIF.SetQuery( "/app1/ifd/gps/{ushort=1}" , "N" );

* This source code was highlighted with Source Code Highlighter .

рдЗрд╕реА рддрд░рд╣ рджреЗрд╢рд╛рдВрддрд░ рдХреЗ рд╕рд╛рде:
TmpImgEXIF.SetQuery( "/app1/ifd/gps/{ushort=3}" , "E" );

* This source code was highlighted with Source Code Highlighter .

рдФрд░ рд╕рдВрд╕реНрдХрд░рдг, рдпрд╣ 2.2.0.0 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
TmpImgEXIF.SetQuery( "/app1/ifd/gps/{ushort=0}" , "2.2.0.0" );

* This source code was highlighted with Source Code Highlighter .

рдЕрдм рдпрд╣ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ: рдКрдВрдЪрд╛рдИ рдЬреЛрдбрд╝реЗрдВ - рдпрд╣ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╣рдо рддрд░реНрдХрд╕рдВрдЧрдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк EXIF рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдореБрджреНрд░ рддрд▓ рд╕реЗ рдКрдБрдЪрд╛рдИ рддрд░реНрдХрд╕рдВрдЧрдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдпрд╣ рдкреНрд░рдХрд╛рд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрдВрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛ 182.053 рдХреЛ 182053/1000 (рдпрд╛ 1820530/10000) рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред C # рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк ulong рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрд╢ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 4 рдирд┐рдореНрди рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╣рд░ рдХреЗ рд▓рд┐рдП 4 рдЙрдЪреНрдЪ рдмрд╛рдЗрдЯреНрд╕ред рдпрд╣рд╛рдВ рдбрдмрд▓ рдХреЛ рддрд░реНрдХрд╕рдВрдЧрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рд░реЛрд╣ рд╣реИ:
private ulong rational( double a)
{
uint denom = 1000;
uint num = ( uint )(a * denom);
ulong tmp;
tmp = ( ulong )denom << 32;
tmp |= ( ulong )num;
return tmp;
}


* This source code was highlighted with Source Code Highlighter .

рдЪрд▓реЛ 95.3 рдореАрдЯрд░ рдХреА рдКрдВрдЪрд╛рдИ (EXIF рдореЗрдВ, рд╕рдореБрджреНрд░ рддрд▓ рд╕реЗ рдКрдкрд░ рдХреА рдКрдВрдЪрд╛рдИ рдореАрдЯрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, .plt рдЯреНрд░реИрдХ рдХреЗ рд╡рд┐рдкрд░реАрдд рдЬрд╣рд╛рдВ рдпрд╣ рдкреИрд░реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ)ред
TmpImgEXIF.SetQuery( "/app1/ifd/gps/{ushort=2}" , rational(95.3));

* This source code was highlighted with Source Code Highlighter .

рдЦреИрд░, рдЕрдм рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ рдЬреЛрдбрд╝реЗрдВред рдЗрд╕реЗ рддреАрди рддрд░реНрдХрд╕рдВрдЧрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рдбрд┐рдЧреНрд░реА, рдорд┐рдирдЯ, рд╕реЗрдХрдВрдб рдФрд░ рдЕрдВрд╢ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рддреЗ рд╣реИрдВред рдбрд┐рдЧреНрд░реА рдФрд░ рдорд┐рдирдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЬреЛ рдХрд┐, рднрд╛рдЬрдХ 1 рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реНрд╡ рд╢рд░реНрдд рдирд╣реАрдВ рд╣реИ), рдФрд░ рд╕реЗрдХрдВрдб рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг: 50тБ░30'12.345 'ред C # рдореЗрдВ, рдЗрди рддреАрди рдирдВрдмрд░реЛрдВ рдХреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдБ рдПрдХ рднреМрдЧреЛрд▓рд┐рдХ рдЕрдХреНрд╖рд╛рдВрд╢ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
ulong [] t = { rational(50), rational(30), rational(12.345) };
TmpImgEXIF.SetQuery( "/app1/ifd/gps/{ushort=2}" , t);


* This source code was highlighted with Source Code Highlighter .

рдФрд░ рджреЗрд╢рд╛рдВрддрд░:
TmpImgEXIF.SetQuery( "/app1/ifd/gps/{ushort=4}" , t);

* This source code was highlighted with Source Code Highlighter .

рдЦреИрд░, рдпрд╣ рд╕рдм рд╕рдВрднрд╡ рд╣реИред рдХрднреА-рдХрднреА рдЯреНрд░реИрдХ, рдЯреИрдЧ, рдХрд┐рд╕реА рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗрд╡рд╛ рдФрд░ рдЕрдиреНрдп рдХреА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбрд┐рдЧреНрд░реА рдХреЗ рдЕрдВрд╢реЛрдВ рдФрд░ рдЕрдВрд╢реЛрдВ рдХреЗ рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣рд╛рдБ рдЕрдиреБрд╡рд╛рдж рд╕реВрддреНрд░ рд╣реИрдВ:
Degree = Math .Floor( value );
Minute = Math .Floor((( value - Math .Floor( value )) * 60.0));
Second = ((( value - Math .Floor( value )) * 60.0) - Math .Floor((( value - Math .Floor( value )) * 60.0))) * 60;


* This source code was highlighted with Source Code Highlighter .

рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рдЯрдореИрдкрдореЗрдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ (рдпрджрд┐ рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдХреБрдЫ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирдП рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдЕрдм рдПрдХ рдирдИ рд╕реНрдиреИрдкрд╢реЙрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдкрд╣рд▓реА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред
JpegBitmapEncoder Encoder = new JpegBitmapEncoder(); // Jpeg
Encoder.Frames.Add(BitmapFrame.Create(decoder.Frames[0], decoder.Frames[0].Thumbnail, TmpImgEXIF, decoder.Frames[0].ColorContexts)); // ( )
string NewFileName = s + "+GeoTag.jpg" ; // +GeoTag.jpg
using ( Stream jpegStreamOut = File .Open(NewFileName, FileMode .CreateNew, FileAccess.ReadWrite)) //
{
Encoder.Save(jpegStreamOut); //
}
Foto.Close(); //

* This source code was highlighted with Source Code Highlighter .

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирдИ jpeg рдлрд╝рд╛рдЗрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд┐рдпреЛрдЯреИрдЧ рдХреЗ рд╕рд╛рдеред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдФрд░ рдирдП рдХрд╛ рдЖрдХрд╛рд░ рдХрд╛рдлреА рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЫрд╡рд┐ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдЖрдк рдХрд┐рд╕реА рднреА EXIF тАЛтАЛрдлрд╝реАрд▓реНрдб (рдЯреИрдЧ) рдХреЗ рд╕рд╛рде рд╕реЗрдЯрд┐рд╡рд┐ рдФрд░ рдЧреЗрдЯрд┐рдЕрдХреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред GetQuery рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдПрдХ рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рди рджреЗрддрд╛ рд╣реИ - рд╣рдо EXIF рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ ред рдХреНрдпрд╛ рдЕрдиреБрд░реЛрдз, рдХреНрдпрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЬрд╡рд╛рдм рдЖрдк рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд┐рдерд┐ рдкрдврд╝рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп:
GetQuery( "/app1/ifd/exif:{uint=36867}" );

* This source code was highlighted with Source Code Highlighter .

рдЖрдк рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


Source: https://habr.com/ru/post/In134774/


All Articles