Как сделать прозрачным фон элемента

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Как сделать прозрачным фон элемента

Сообщение Tereha » 03 июл 2012, 15:33

Создаю элемент на карте :

Код: Выделить всё

            ESRI.ArcGIS.Carto.IPictureElement pPictureElement;
            pPictureElement = new ESRI.ArcGIS.Carto.PngPictureElementClass();
            pPictureElement.ImportPictureFromFile(@"D:\рисунок.png");
Изображение на белом фоне, который нужно убрать. Как?

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Как сделать прозрачным фон элемента

Сообщение Дмитрий Барышников » 03 июл 2012, 16:54

А стандартными средствами это делается - имеется в виду в интерфейсе ArcMap?

Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: Как сделать прозрачным фон элемента

Сообщение Tereha » 04 июл 2012, 10:39

Стандартными средствами не смотрел. Убрал фон у рисунка .png, но белый фон все равно при создании на axMapControl. Хотя в обычном средстве просмотра фотографий Windows фона нет.
Код на сейчас:

Код: Выделить всё

        private void createPictureElement(Image img)
        {
            ESRI.ArcGIS.Carto.IPictureElement pPictureElement;
            pPictureElement = new ESRI.ArcGIS.Carto.PngPictureElementClass();
            pPictureElement.ImportPictureFromFile(@"D:\__VS\Иконки\Новая папка\Зона пожара схема.png");
            // pPictureElement.D:\__VS\Иконки\Новая папка
            ////((IElement)pPictureElement)..

            //  ((IOlePictureElement)pPictureElement).ImportPicture(IPictureDispHost.GetIPictureDispFromPicture(img) as stdole.IPictureDisp);

            ESRI.ArcGIS.Geometry.IEnvelope pEnv = new ESRI.ArcGIS.Geometry.EnvelopeClass();

            //нужно достать размеры картинки в пикселах , умножаем на 96 - точек на дюйм = размер в дюймах
            // это получили размеры картинки в дюймах. Еще нужно пересчитать в размеры в единицах карты

            Size s = getSizeInMapUnits(new Size(105, 75));

            pEnv.PutCoords(mapX, mapY, mapX + s.Width, mapY + s.Height);
            ESRI.ArcGIS.Carto.IElement pElement;
            pElement = pPictureElement as ESRI.ArcGIS.Carto.IElement;
            pElement.Geometry = pEnv;
            ESRI.ArcGIS.Carto.IGraphicsContainer pGraphicContainer;
            pGraphicContainer = axMapControl1.Map as IGraphicsContainer;
            pGraphicContainer.AddElement(pElement, 0);
            ESRI.ArcGIS.Carto.IActiveView pActiveView;
            pActiveView = pGraphicContainer as ESRI.ArcGIS.Carto.IActiveView;
            pActiveView.PartialRefresh(ESRI.ArcGIS.Carto.esriViewDrawPhase.esriViewGraphics, pElement, pEnv);
Сделаю - отпишусь.

Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: Как сделать прозрачным фон элемента

Сообщение Tereha » 04 июл 2012, 20:12

Во вложении - рисунок и результат выполнения кода. Нужно удалить белый фон.
Вложения
Зона пожара схема.png
Это иконка, которую нужно положить на карту
Зона пожара схема.png (5.32 КБ) 5603 просмотра
White backgrounl picture.jpg
Результат выполнения приведенного кода.
White backgrounl picture.jpg (14.97 КБ) 5603 просмотра

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Как сделать прозрачным фон элемента

Сообщение Дмитрий Барышников » 04 июл 2012, 21:27

Если через интерфейс нельзя, то и программно не получится. Ищите другие способы, например: http://resources.esri.com/help/9.3/arcg ... 86ce75.htm

P.S. Судя по картинке - бедные Лопухи :)

Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: Как сделать прозрачным фон элемента

Сообщение Tereha » 05 июл 2012, 08:05

Ну как то так - из верхнего рисунка сделан нижний с прозрачным фоном.
Вложения
transparent.png
Нижняя иконка сделана из верхней удалением фона
transparent.png (610.63 КБ) 5585 просмотров

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя