Страница 1 из 1
Как сделать прозрачным фон элемента
Добавлено: 03 июл 2012, 15:33
Tereha
Создаю элемент на карте :
Код: Выделить всё
ESRI.ArcGIS.Carto.IPictureElement pPictureElement;
pPictureElement = new ESRI.ArcGIS.Carto.PngPictureElementClass();
pPictureElement.ImportPictureFromFile(@"D:\рисунок.png");
Изображение на белом фоне, который нужно убрать. Как?
Re: Как сделать прозрачным фон элемента
Добавлено: 03 июл 2012, 16:54
Дмитрий Барышников
А стандартными средствами это делается - имеется в виду в интерфейсе ArcMap?
Re: Как сделать прозрачным фон элемента
Добавлено: 04 июл 2012, 10:39
Tereha
Стандартными средствами не смотрел. Убрал фон у рисунка .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);
Сделаю - отпишусь.
Re: Как сделать прозрачным фон элемента
Добавлено: 04 июл 2012, 20:12
Tereha
Во вложении - рисунок и результат выполнения кода. Нужно удалить белый фон.
Re: Как сделать прозрачным фон элемента
Добавлено: 04 июл 2012, 21:27
Дмитрий Барышников
Если через интерфейс нельзя, то и программно не получится. Ищите другие способы, например:
http://resources.esri.com/help/9.3/arcg ... 86ce75.htm
P.S. Судя по картинке - бедные Лопухи

Re: Как сделать прозрачным фон элемента
Добавлено: 05 июл 2012, 08:05
Tereha
Ну как то так - из верхнего рисунка сделан нижний с прозрачным фоном.