|
![]() |
#1 |
Участник
|
Custav по вашему примеру работает, но
делаю вместо image.captureScreen() - image.loadFile("C:\\png.png"); фон серый и непрозрачный, хотя в самом рисунке прозрачный, может - Image.loadFile() - такую фигню делает? да,уж .. при сохранении файла в *.jpg - все работает... Последний раз редактировалось PPL; 19.05.2009 в 07:18. |
|
![]() |
#2 |
Moderator
|
Мда, интересное поведение у этой прозрачности... Похоже, действительно что-то где-то глючит...
Заимствовал PNG-файл Ивана Кашперука из этого сообщения Поздравления (Репутация и Количество сообщений): Положил его в корень диска C. Как видно, цвет фона у него голубой (Excel во время записи макроса показал RGB 226, 240, 255 ). Однако, наш код, использующий белый цвет (RGB 255, 255, 255), правильно (почему??) установил прозрачность (у меня, во всяком случае, это так). X++: static void Job198_2(Args _args) { ComExcelDocument_RU doc = new ComExcelDocument_RU(); Image image = new Image(); COM xlApp; COM wbook; COM activeSheet; COM range; COM shape; COM pf; ; doc.NewFile('',false); wbook = doc.getComDocument(); xlApp = wbook.Parent(); activeSheet = xlApp.ActiveSheet(); range = activeSheet.Range('B10'); //image.captureScreen(0+(i-1)*2, 0+(i-1)*2, 300+(i-1)*2, 100+(i-1)*2); image.loadFile(@'C:\Andre_2000.PNG'); // image.clipboardCopy(); range.pasteSpecial(0); // 18.05.2009 ПРОЗРАЧНОСТЬ --> shape = xlApp.Selection(); shape = shape.ShapeRange(); pf = shape.PictureFormat(); pf.TransparentBackground(-1); pf.TransparencyColor(WinAPI::RGB2int(255,255,255)); // белый //pf.TransparencyColor(WinAPI::RGB2int(226,240,255)); // голубой // 18.05.2009 <-- doc.visible(true); } X++: static void Job198_2(Args _args) { ComExcelDocument_RU doc = new ComExcelDocument_RU(); Image image = new Image(); COM xlApp; COM wbook; COM activeSheet; COM range; COM shape; COM pf; ; doc.NewFile('',false); wbook = doc.getComDocument(); xlApp = wbook.Parent(); activeSheet = xlApp.ActiveSheet(); shape = activeSheet.Pictures(); shape = shape.Insert(@'C:\Andre_2000.PNG'); // shape = shape.ShapeRange(); range = activeSheet.Range('B10'); shape.Top(range.Top()); shape.Left(range.Left()); pf = shape.PictureFormat(); pf.TransparentBackground(-1); pf.TransparencyColor(WinAPI::RGB2int(226,240,255)); // голубой shape.Select(); doc.visible(true); } |
|
Теги |
excel, рисунок |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|