Более

Как убедить gdal2tiles выводить png с прозрачностью?

Как убедить gdal2tiles выводить png с прозрачностью?


У меня есть размолвка, созданная с помощью Pix4dmapper. Этот tiff имеет встроенные координаты (как видно из журналов ниже) (я думаю, это делает его geotiff?), А также связанный с ним файл tfw.

Открытие TIFF при просмотре изображений (программа просмотра фотографий Windows) или в инструменте редактирования (Paint.NET) показывает, что область за пределами моего изображения прозрачна.

Создание тайлов с помощью gdal2tiles создает png-файлы с черным цветом там, где есть прозрачность в исходном tiff.

Изменить: изменение типа передискретизации не помогает.

Как это исправить? (Регистрация и пример вывода ниже)

> gdal2tiles --version GDAL 1.11.2, выпущено 2 февраля 2015 г.> gdalinfo stadium3857.tif Драйвер: GTiff / GeoTIFF Файлы: stadium3857.tif Размер: 11938, 10667 Система координат: PROJCS ["WGS 84 / Pseudo-Mercator" , GEOGCS [«WGS 84», DATUM [«WGS_1984», SPHEROID [«WGS 84», 6378137,298,257223563, AUTHORITY [«EPSG», «7030»]]], AUTHORITY [«EPSG», «6326»]], PRIMEM ["Гринвич", 0], ЕДИНИЦА ["градус", 0,0174532925199433], АВТОРИТЕТ ["EPSG", "4326"]], ПРОЕКЦИЯ ["Mercator_1SP"], ПАРАМЕТР ["центральный_меридиан", 0], ПАРАМЕТР ["масштаб_фактор" , 1], ПАРАМЕТР ["false_easting", 0], ПАРАМЕТР ["false_northing", 0], UNIT ["метр", 1, АВТОРИТЕТ ["EPSG", "9001"]], РАСШИРЕНИЕ ["PROJ4", "+ proj = merc + a = 6378137 + b = 6378137 + lat_ts = 0.0 + lon_0 = 0.0 + x_0 = 0.0 + y_0 = 0 + k = 1.0 + units = m + nadgrids = @ null + wktext + no_defs "], АВТОРИТЕТ [" EPSG "," 3857 "]] Origin = (-11713078.632369816000000,4839234.097803738000000) Размер пикселя = (0,018605312329563, -0,018605312329563) Метаданные: AREA_OR_POINT = Область TIFFTAG_SOFTWARE = ​​Структура изображения pix4dmapper rner Координаты: Верхний левый (-11713078.632, 4839234.098) (105d13'13.35 "W, 39d48'57.46" N) Нижний левый (-11713078.632, 4839035.635) (105d13'13.35 "W, 39d48'52.53" N) Верхний правый (-11712856.522 , 4839234.098) (105d13 '6,17 "W, 39d48'57,46" N) Нижний правый (-11712856.522, 4839035.635) (105d13' 6,17 "W, 39d48'52,53" N) Центр (-11712967,577, 4839134,866) (105d13 '9,76 "W , 39d48'54,99 дюйма N) Блок диапазона 1 = 11938x1 Тип = Байт, ColorInterp = Красный Значение NoData = -10000 Блок 2 диапазона = 11938x1 Тип = Байт, ColorInterp = Зеленый Значение NoData = -10000 Блок диапазона 3 = 11938x1 Тип = Байт, ColorInterp = Blue NoData Value = -10000 Band 4 Block = 11938x1 Type = Byte, ColorInterp = Alpha NoData Value = -10000> gdal2tiles -p mercator -r lanczos -z 16 stadium3857.tif 3857tiles Генерация базовых листов: 0… 10… 20… 30… 40… 50… 60… 70… 80… 90… 100 - готово. Создание плиток обзора: 0… 10… 20… 30… 40… 50… 60… 70… 80… 90… 100 - готово. > gdalinfo -stats stadium3857.tif Драйвер: GTiff / GeoTIFF Файлы: stadium3857.tif Размер 11938, 10667 Система координат: PROJCS ["WGS 84 / Pseudo-Mercator", GEOGCS ["WGS 84", DATUM ["WGS_1984", СФЕРОИД [«WGS 84», 6378137,298,257223563, ВЛАСТЬ [«EPSG», «7030»]], ВЛАСТЬ [«EPSG», «6326»]], ПРИМЕМ [«Гринвич», 0], UNIT [«степень», 0,0174532925199433], АВТОРИТЕТ ["EPSG", "4326"]], ПРОЕКЦИЯ ["Mercator_1SP"], ПАРАМЕТР ["центральный_меридиан", 0], ПАРАМЕТР ["масштаб_фактор", 1], ПАРАМЕТР ["ложный_выпуск", 0], ПАРАМЕТР ["false_northing", 0], UNIT ["meter", 1, AUTHORITY ["EPSG", "9001"]], EXTENSION ["PROJ4", "+ proj = merc + a = 6378137 + b = 6378137 + lat_ts = 0,0 + lon_0 = 0,0 + x_0 = 0,0 + y_0 = 0 + k = 1,0 + units = m + nadgrids = @ null + wktext + no_defs "], AUTHORITY [" EPSG "," 3857 "]] Origin = (-11713078.632369816000000, 4839234.097803738000000) Размер пикселя = (0,018605312329563, -0,018605312329563) Метаданные: AREA_OR_POINT = Область TIFFTAG_SOFTWARE = ​​pix4dmapper Метаданные структуры изображения: INTERLEAVE = PIXEL Координаты углов: верхний левый (-117139,63) 234.098) (105d13'13.35 "W, 39d48'57.46" N) Нижний левый (-11713078.632, 4839035.635) (105d13'13.35 "W, 39d48'52.53" N) Верхний правый (-11712856.522, 4839234.098) (105d13 '6.17 "W , 39d48'57,46 "N) Нижний правый (-11712856,522, 4839035,635) (105d13 '6,17" W, 39d48'52,53 "N) Центр (-11712967,577, 4839134,866) (105d13' 9,76" W, 39d48'54,99 "N) Полоса 1 Блок = 11938x1 Тип = Байт, ColorInterp = Красный Минимум = 0,000, Максимум = 255,000, Среднее значение = 110,742, StdDev = 52,510 Значение NoData = -10000 Метаданные: STATISTICS_MAXIMUM = 255 STATISTICS_MEAN = 110,74218332168 STATISTICS_MINIMUM = 529508DSTATISTICS_MINIMUM = 0 Тип блока 2950VIST = 0 = Байт, ColorInterp = Зеленый Минимум = 0,000, Максимум = 255,000, Среднее = 114,435, StdDev = 49,943 Значение NoData = -10000 Метаданные: STATISTICS_MAXIMUM = 255 STATISTICS_MEAN = 114,43497066961 STATISTICS_MINIMUM = 0 STATISTICS_STD10p = 0 STATISTICS_STD10p = 0 Тип блока данных = 0 STATISTICS_STD10p = 0 = Синий Минимум = 0,000, Максимум = 255,000, Среднее значение = 104,162, StdDev = 53,886 Значение NoData = -10000 Метаданные: STATISTICS_MAXIMUM = 255 STATISTICS_ME AN = 104,16159443554 STATISTICS_MINIMUM = 0 STATISTICS_STDDEV = 53,885963342186 Блок 4 диапазона = 11938x1 Тип = Байт, ColorInterp = Alpha Минимум = 0,000, Максимум = 255,000, Среднее значение = 225,883, StdDev = 81,100 Значение NoData = 255,000 STIMISTATMISTATIC_UMISTATIC = -10000 STMISTATIC_MAX10 = -10000 МЕТАДАННЫЕ STATIC_MISTATICS = -10000 = 0 STATISTICS_STDDEV = 81.099516598291

Пример вывода при 16 увеличении


Что в итоге сработало для @RobotCaleb, так это следующее:

  1. Примените маску к альфе (диапазон 4):

    gdal_translate -mask 4 stadium3857.tif stadium3857_RGB.tif

2. Вычислите новый альфа-канал из значений NoData:

gdalwarp -dstalpha stadium3857_RGB.tif стадион3857_RGBA.tif

редактировать: очевидноgdal2tilesне требует альфа-канала во входном наборе данных, но также преобразует значения NoData в прозрачность, поэтому шаг 2 не требуется


Смотреть видео: 5 BODY FEINTS YOU NEED TO LEARN - how to do these football skills