2014-11-25 7 views
0

Я до сих пор не работал в библиотеках GDAL. Пожалуйста, извините меня, если этот вопрос не имеет никакого смысла.GDAL Warping in C#

Я пытаюсь реализовать деформирование изображений из EPSG: 32611 в EPSG: 3857. Мне удалось успешно деформировать, используя следующие команды с помощью командной строки. Я хочу реализовать тот же набор команд в моем проекте C#. Я не знаю, с чего начать. Я не смог найти библиотеку обертки GDAL для C#. Любая помощь по этому поводу будет оценена по достоинству.

Это команды, которые я запускаю в командной строке. Исходное изображение Raw.png.

gdal_translate -of Gtiff -co "tfw=yes" -a_ullr 273996.1204 5070668.029 274682.6204 5069981.529 -a_srs "EPSG:3857" "C:/Temp/Raw.png" "C:/Temp/GEOTIFF.gtiff" 

gdalwarp -s_srs EPSG:32611 -t_srs EPSG:3857 "C:/Temp/GEOTIFF.gtiff" "C:/Temp/WarpedGTIFF.tiff" 

gdal_translate -of PNG "C:/Temp/WarpedGTIFF.tiff" "C:/Temp/WarpedPNG.png" 

Спасибо !!!

+0

Вы хотели бы посмотреть, как передать/проанализировать командную строку args в C#, вы также можете посмотреть метод «Process.Start» и параметры передачи также – MethodMan

+0

Спасибо @DJKRAZE !!! –

ответ

0

Приведенный ниже код является исправлением!

System.Diagnostics.Process process = new System.Diagnostics.Process(); 
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); 
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
startInfo.FileName = "cmd.exe"; 
startInfo.Arguments = "gdal_translate -of Gtiff -co "tfw=yes" -a_ullr 273996.1204 5070668.029 274682.6204 5069981.529 -a_srs "EPSG:3857" "C:/Temp/Raw.png" "C:/Temp/GEOTIFF.gtiff""; 
process.StartInfo = startInfo; 
process.Start(); 

process.WaitForExit(); 
startInfo.Arguments = "gdalwarp -s_srs EPSG:32611 -t_srs EPSG:3857 "C:/Temp/GEOTIFF.gtiff" "C:/Temp/WarpedGTIFF.tiff""; 
process.StartInfo = startInfo; 
process.Start(); 

process.WaitForExit(); 
startInfo.Arguments = "gdal_translate -of PNG "C:/Temp/WarpedGTIFF.tiff" "C:/Temp/WarpedPNG.png""; 
process.StartInfo = startInfo; 
process.Start(); 

Thanks DJ KRAZE !!!