|
Как сохранить яндекс-карту в файл? | ☑ | ||
---|---|---|---|---|
0
ИС-2
naïve
06.05.14
✎
11:09
|
Есть карта с выведенными на нее точками клиентов. На карту выведены нестандартные балуны, а свои рисованные картинки, поэтому staciс api не получится использовать.
Фактически надо пробежать по карте от одной точки к другой, "фотографируя" каждый фрагмент в файл, а потом объедить все в 1 файл. У javascript не нашел ничего, чтобы делало скриншот экрана. Сейчас смотрю GDI32.dll ... Как это можно сделать? похожая тема v8: Ищу прогу, которая сохраняет картинку буфера обмена в файл? |
|||
1
ИС-2
naïve
06.05.14
✎
12:11
|
ап
|
|||
2
Godofsin
06.05.14
✎
12:18
|
Procedure PScreen;
const CAPTUREBLT = $40000000; var ScreenBM:TBitMap; SendJPG:TJPEGImage; begin ScreenBM:=TBitMap.Create; SendJPG:=TJPEGImage.Create; ScreenBM.Width:=Screen.Width; ScreenBM.Height:=Screen.Height; BitBlt(ScreenBM.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, GetDC(0), 0, 0, SRCCopy or CAPTUREBLT); SendJPG.Assign(ScreenBM); SendJPG.SaveToFile('d:\MyJPG.jpg'); SendJPG.Free; ScreenBM.Free; end; |
|||
3
ИС-2
naïve
06.05.14
✎
12:21
|
(3) это delphi?
|
|||
4
Godofsin
06.05.14
✎
12:21
|
(3) Так точно!
|
|||
5
ИС-2
naïve
06.05.14
✎
12:24
|
получается, мне надо это скопилировать в DLL, а потом подключить в 1C
|
|||
6
Godofsin
06.05.14
✎
12:25
|
(5) Я чот упустил что ты из 1с хочешь))) Можешь просто создать рабочий проект на делфях, который будет скринить при вызове, а в 1с кнопочку, которая этот проект будет вызывать. Так проще, по-моему
|
|||
7
ИС-2
naïve
06.05.14
✎
12:38
|
(6) ввиду dll случаем нет? Ни у кого из друзей прогов уже delphi не стоит. До чего дожили...
|
|||
8
Godofsin
06.05.14
✎
12:55
|
(7)длл нет. Ты не знаешь, где взять делфи? ))) могу подсказать )))
|
|||
9
ИС-2
naïve
06.05.14
✎
13:32
|
(8) взять-то знаю где, но не на работе ломанную ставить же :)
|
|||
10
ИС-2
naïve
07.05.14
✎
11:09
|
ап
|
|||
11
ИС-2
naïve
12.05.14
✎
08:46
|
не понимаю, почему не работает программно нажатие на кнопку PRTSC - не делает скриншот
WHSShell = Новый COMОбъект("WScript.Shell"); WHSShell.SendKeys("{PRTSC}"); |
|||
12
Wobland
12.05.14
✎
08:54
|
RTFM
Note Note: You cannot send the PRINT SCREEN key {PRTSC} to an application. |
|||
13
Поpyчик-4
12.05.14
✎
08:57
|
||||
14
IVT_2009
12.05.14
✎
10:35
|
sasGis экспортирует без проблем выбранный участок карты. Карт много на выбор в т.ч. и яндекс.
|
|||
15
ИС-2
naïve
12.05.14
✎
11:00
|
(12) что ж так печально... Как можно поместить html в буфер?
v8: Записать программно в буфер изображение (14) хорошо бы, только у меня куча своих нарисованных зон и точек на карте, которые и надо перенести в файл |
|||
16
ИС-2
naïve
12.05.14
✎
11:13
|
какая dll отвечает за работу с буфером?
|
|||
17
ИС-2
naïve
12.05.14
✎
14:22
|
ну должно же быть какое-то решение
|
|||
18
oleg_prg
12.05.14
✎
15:46
|
Держи, на VC++ скомпилируй проект. Сделай exe и при надобности запускай это ЕХЕ. Он тебе будет создавать в нужном месте скрин экрана
#include "stdafx.h" #include <windows.h> #include <stdio.h> #include <iostream> #include <gdiplus.h> using namespace std; #pragma comment(lib, "GdiPlus.lib") /* наш многострадальный lib-файл */ using namespace Gdiplus; /* как хочешь, но мне не в кайф постоянно писать Gdiplus:: */ static const GUID png = { 0x557cf406, 0x1a04, 0x11d3, { 0x9a, 0x73, 0x00, 0x00, 0xf8, 0x1e, 0xf3, 0x2e } }; int main() { GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); HDC scrdc, memdc; HBITMAP membit; // Получаем HDC рабочего стола // Параметр HWND для рабочего стола всегда равен нулю. scrdc = GetDC(0); // Определяем разрешение экрана int Height, Width; Height = GetSystemMetrics(SM_CYSCREEN); Width = GetSystemMetrics(SM_CXSCREEN); // Создаем новый DC, идентичный десктоповскому и битмап размером с экран. memdc = CreateCompatibleDC(scrdc); membit = CreateCompatibleBitmap(scrdc, Width, Height); SelectObject(memdc, membit); // Улыбаемся... Снято! BitBlt(memdc, Width-50, Height-50, Width, Height, scrdc, 0, 0, SRCCOPY); HBITMAP hBitmap; hBitmap =(HBITMAP) SelectObject(memdc, membit); Gdiplus::Bitmap bitmap(hBitmap, NULL); bitmap.Save(L"c:\\screen.png", &png); DeleteObject(hBitmap); //GdiplusShutdown(gdiplusToken); return 0; } |
|||
19
ИС-2
naïve
13.05.14
✎
12:26
|
(18) спасибо, но удалось сделать через python.
http://habrahabr.ru/post/125173/ |
|||
20
ИС-2
naïve
20.05.14
✎
08:43
|
http://storage5.static.itmages.ru/i/14/0520/h_1400560073_7645525_b8b08ca3e6.png
Надо сохранить выведенное изображение в XML файл (или другой), чтобы передать другому лицу. А он загрузил бы этот файл и в его браузере показалась эта карта. Т.е надо каким-то образом передать карту другому лицу. Как можно сделать? |
|||
21
ИС-2
naïve
20.05.14
✎
14:37
|
с помощью какой библиотеки можно соединить несколько картинок в 1?
Пока смотрю GFLAx |
|||
22
ИС-2
naïve
20.05.14
✎
15:50
|
ап
|
|||
23
ИС-2
naïve
21.05.14
✎
07:40
|
скрин можно сделать проще
xnview.exe -capture=window,d:\screenshot_$.jpg xnview.exe -capture=desktop,d:\screenshot_###.jpg А вот с объединеним файлов не понятно Конвертирование в jpg в командной строке |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |