Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];

Вниз

Сохранить картинку (jpg/bmb/...) из "блочного" редактора   Найти похожие ветки 

 
sniknik ©   (2008-03-19 16:14) [0]

Смотрю компоненты (демо) на предмет покупки, нужна возможность сохранять отредактированное картинкой (она после должна накладываться на другую предоставленную клиентом (??? х.з. сам не понял), в общем план совмещаться в фотографией. План и надо нарисовать.)
Присмотрел BlockEngine - http://ksdev.com/
демо (понять о чем речь) можно скачать http://ksdev.com/download.html пункт "BlockEngine compiled demo"
В общем устраивает как оно с  блоками работает, и переместить можно и повернуть, и стиль (типа кирпичной стены. то что нужно ;) можно задать, не устраивает только AV при undo %) (в демо тоже есть, при нажатии кнопки), и то что не нашел как результат сохранить картинкой (в своем формате блоками легко сохраняет, что тоже нужно для дальнейшего редактирования... но не достаточно)
Хелп с демой, какойто покоцанный, только свойства/методы (без параметров, только названия). Исходников нет (демо версия, естественно). Нашел правда чтото похожее, что могло бы помочь, перебирая все (BlockEditor1.Document.Draw();), но он и рисует в какойто свой формат (TGPGraphics) у которого нет методов сохранить картинку/стрим.

В общем если кто в курсе (работал/имеет исходники/полный хелп/...) скажите есть в этих компонентах возможность сохранить картинкой? (нехорошо будет, купим а там принципиально такой возможности нет).
Или может кто знает лучшие (более подходящие на ваш взгляд), для рисования плана помещения
- нужен такой вид сверху, типа горизонтальный "распил" помещения, и чтобы можно было стенки кирпичиками определять, трубы металлическим цветом кружочки, и назначать то, что не двигается фоном после установки на место, а "столы" например двигать и дальше (естественно только до выгрузки картинкой, там уж как есть так есть).
И еще желательно чтобы все было одним компонентом, типа бухнул весь редактор на форму и не паришься (мечты мечты), т.к. проект одноразовый и не по нашей специфике... просто вот пожелали иметь такую возможность прямо в программе... и отказать нельзя. (вот и ищу, чтобы такое купить, вставить и забыть, с наименьшими трудозатратами)


 
Simpson   (2008-03-19 19:46) [1]

а если с Canvas аккуратно скопировать?
www.sourceforge.net найдется все


 
tesseract ©   (2008-03-19 21:08) [2]

Гм, а OnPaint перехватить и в буфер  ?  забавно выйдет :-)


 
sniknik ©   (2008-03-19 22:26) [3]

> а если с Canvas аккуратно скопировать?
Первым делом смотрел, но не нашел (все обьекты судя по всему там от TComponent наследуются... не уверен конечно, были бы исходники... (Тогда не надо было бы покупать ;)..., и/или можно было бы попробовать переделать. Хотя, в принципе, если бы была уверенность, что можно переделать то можно сразу покупать... диалектика, мать ее. :)))

> Гм, а OnPaint перехватить и в буфер  ?
А дальше? Часть обьектов могут быть "за скролом" т.е. не рисоваться, с ними как?
Не уверен в общем, да и не видел я там события OnPaint... в явном виде, на "едиторе" или блоках. Посмотрю завтра точнее.

И еще, план обязательно будет больше экрана... это к тому, что и идея с экрана копировать, если возникнет, тоже не пройдет.

+ предлагали на работе принтер заменить... типа "свой" подставить (есть такие типа печать в файл, /...). Но это както сложновато... потом как "клеить" картинку напечатанную на 4х-листах в одну? Ладно, если разово, координаты можно подогнать, но как быть с разными настройками на разных машинах? Наверняка будут "прорехи" в стыках. В общем вместо удобства получаем дополнительные проблемы. Идея (не моя! по мне так любой нормальный внешний граф редактор лучше) была в том как раз чтобы других прог не использовать, все типа в одном месте, а тут какието драйвера устанавливать.

А кстати, может есть какой нибудь ActivX/OLE/обьект автоматизации, типа как Excel, только для данного случая - граф редактора, который можно было бы использовать? Неважно, что в общем, чтобы поменьше усилий на это потратить.


 
DVM ©   (2008-03-19 22:33) [4]


> Или может кто знает лучшие (более подходящие на ваш взгляд),
>  для рисования плана помещения

http://www.torry.net/quicksearchd.php?String=Drawing+Engine&Title=Yes

Может подойдет.


 
sniknik ©   (2008-03-20 00:21) [5]

> Может подойдет.
;( Врядли. Нет одних из основных моментов, "кирпичиков" в заполнении :) (а как стенку на плане показывать?) и поворотов обьектов ("Скошенных" фигур на любом плане полно будет. Наверняка. Особенно если возможности просто это изобразить не будет... так всегда).


 
Torry ©   (2008-03-20 08:39) [6]


> Присмотрел BlockEngine - http://ksdev.com/
> демо (понять о чем речь) можно скачать http://ksdev.com/download.
> html пункт "BlockEngine compiled demo"


Так у них и полноценные триалы есть - http://www.torry.net/quicksearchd.php?String=BlockEngine+&Title=Yes


 
pasha_golub ©   (2008-03-20 08:44) [7]


> sniknik ©   (19.03.08 22:26) [3]


> А кстати, может есть какой нибудь ActivX/OLE/обьект автоматизации,
>  типа как Excel, только для данного случая - граф редактора,
>  который можно было бы использовать? Неважно, что в общем,
>  чтобы поменьше усилий на это потратить.

Дык, ведь не факт, что на машине у пользователя граф. редактор этот стоять будет.


 
sniknik ©   (2008-03-20 11:03) [8]

> все обьекты судя по всему там от TComponent наследуются...
да нашел, есть в хелпе, TBlockViewer Class - Hierarchy - TCustomControl
Block - Class Hierarchy - TComponent.

:(, и то и то без Canvas.
Да и то, тут подумал... скопировать с канваса обьектов куски (канвас "подложки" скорее всего просто фон), и после составить из них цельное изображение не так просто как может показаться... а как-же прозрачность могущая быть у каждого, или расположение (слой), в каком они могут находится (кто кого перекрывает), и т.д. ... придется повторять вывод в соответствии с параметрами обьекта, аналогично тому что он делает сам... Не очень то это соответствует минимизации усилий. :о).

> Так у них и полноценные триалы есть
Именно его и смотрю. "Проблемы" от этого (из ссылки) -> Source: On purchase/registration
Изза чего, до покупки не могу посмотреть как у них там все устроено, и смогу ли переделать под свои нужды. А нужной возможности уже нет. Не "выведено наружу", или не нахожу...  А покупать просто чтобы посмотреть на внутренности, и наткнутся после на принципиальную невозможность не хочется.

> Дык, ведь не факт, что на машине у пользователя граф. редактор этот стоять будет.
Это не мои проблемы, клиент хочет -> клиент ставит (и пусть он даже будет стоить больше чем весь наш проект...). Мне вообще кажется не стоит в прогу еще и граф редактор встраивать, удобнее чем полноценный, отдельный он не будет. Но начальство так не думает (а вообще умеет? ;).


 
DVM ©   (2008-03-20 20:58) [9]


> sniknik ©   (20.03.08 00:21) [5]


> Нет одних из основных моментов, "кирпичиков" в заполнении
> :)

туда добавить любой объект дело получаса.


> и поворотов обьектов ("Скошенных" фигур на любом плане полно
> будет.

Тоже добавить несложно.

Если только неохота возиться.


 
Simpson   (2008-03-20 21:38) [10]

sniknik ©   (20.03.08 11:03) [8]
Если вытащить изображение важно может попробывать его тащить через CDC все равно окна в конце концов.


 
Kenny   (2008-03-20 23:43) [11]

Пока все это обсуждалось, быстрее было бы все это самому написать. Делов-то тут с гулькин нос.


 
sniknik ©   (2008-03-21 01:05) [12]

> туда добавить любой объект дело получаса.
> Тоже добавить несложно.
А после опять начать "песню о главном"... Посмотри пример там нет сохранить "as jpeg/..." есть только свой "блочный"/или векторный формат. Т.е. не реализовано то же самое что и у BlockEngine (и еще пару нашел, с тем же недостатком), хотя тут есть исходники, уже лучше.

> Если только неохота возиться.
Именно.

> Если вытащить изображение важно
Важно, но только не одного блока, а суммы всех, и именно в том виде что набран юзером.

> может попробывать его тащить через CDC все равно окна в конце концов.
Cм. [8] абзац второй. Блок-окно которое не находится в видимой части, а в части "за скролом",  даже не рисуется (нет события onpaint) насколько знаю.

> Пока все это обсуждалось, быстрее было бы все это самому написать. Делов-то тут с гулькин нос.
Попробуй. (Нос у Гульки не великоват ли? :)


 
Германн ©   (2008-03-21 01:30) [13]


> Kenny   (20.03.08 23:43) [11]

То ли смеяться, то ли плакать?


 
sniknik ©   (2008-03-21 03:08) [14]

> Т.е. не реализовано то же самое что и у BlockEngine
х.м. ... Хотя сорри, не туда смотрел, смотрел на "сохранить как", а надо было чуть ниже на "экспорт в BMP".
Надо будет к ним, попристальнее  присмотреться...


 
Мазут Береговой   (2008-03-21 05:54) [15]

Жаль, что вы в Delphi работаете, а то бы подсказал как в MS VS2005 это можно сделать. Я сам чуть больше года назад примерно такой проект делал. К сожалению, исходники забыл с собой забрать, но принцип помню и объяснить смог бы.
Нужно было открыть TIFF картинку, напечатать на ней текст и сохранить обратно или напечатать. Вместо текста легко можно было подставить другую картинку... Это несложно делается в Visual Studio.


 
sniknik ©   (2008-03-21 10:51) [16]

> Это несложно делается в Visual Studio.
В делфи тоже, было бы что рисовать (Текст для печати у тебя ведь имеется? А представь не было бы, был бы закрытый обьект содержащий текст которого ты не знаеш, не можеш прочитать, вернее не видиш ни одного знакомого метода чтобы сделать это, пишется он сам закрытыми от тебя методами... да и вообще может не отрисоваться при определенных обстоятельствах... а получить его картинку, чтобы перенести в TIFF, тебе тем не менее надо. Вот в чем было проблема, а не в том что принцип не знаю.)

Но неважно все, "проблема" решилась.

Зря вообще стал искать чтото другое, только время потратил. Как понравились BlockEngine так и надо было бы их "ковырять"(изучать) а не метаться.
В общем вернулся к ним, и при очередном перебирании методов наткнулся на PaintTo(DC: HDC; X, Y: integer; ...); у Block-вьювера, ранее пропущенный. Что в общем и решает все. :)
А искал то SaveToFile/Stream (не реализованы для картинки), Canvas (которого нет)... в общем привычное.

Спасибо участвующим.


 
sniknik ©   (2008-03-21 11:24) [17]

> Что в общем и решает все. :)
Нет, не решает... ;(
Метод копирует только видимое, часть не нужное, а блоки "за скролами", на что думал "нарвусь" сам (если реализовывать перехват onpaint), нет...

Вот что дала проверка.
http://img530.imageshack.us/img530/1664/testbc0.jpg

Ладно, будем смотреть дальше.


 
sniknik ©   (2008-03-21 11:55) [18]

Лишнее (линейки и поля) убирается если использовать PaintBlockDocumentToCanvas (еше одна нашедшаяся рядом функция) но и он копирует только контекст устройства... т.е. отображонное до этого на экране, фактически только часть документа (чтобы оно скопировало все надо "проскролить" документ, и хоть раз показать каждый его кусочек... :(, не очень хорошо, хотя возможно.).


 
REA   (2008-03-21 14:15) [19]

Я в свое время такое поискал поискал да и сделал сам. По функциональности судя по скриншотам процентов 50-70 у меня, от того, что у них сделано, но зато можно как угодно дорабатывать под конкретную задачу.


 
sniknik ©   (2008-03-21 14:29) [20]

> но зато можно как угодно дорабатывать под конкретную задачу.
И тут возможность будет, т.к. с полной версией идут исходники. Т.е. когда купят можно будет менять как хочется.

И кстати, практически сразу придется... т.к. судя  по всему в PaintBlockDocumentToCanvas попросту глюк, уж очень он неадекватно работает (он у меня и невидимое сейчас показывает, если "заскролить" документ в конец и загрузить сохраненный файл блоков, копируется почемуто начало, невидимое, и ни разу не показанное...). Зато теперь понятно, что возможность всетаки есть.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.006 c
15-1205850909
Запись на диски
2008-03-18 17:35
2008.05.04
Запись на диски


15-1205998774
Loginov Dmitry
2008-03-20 10:39
2008.05.04
Глючит DeleteFile в WinXP


15-1206006177
TUser
2008-03-20 12:42
2008.05.04
Чем больше бумаги, ...


11-1188746752
andreil
2007-09-02 19:25
2008.05.04
Глюк Дельфи или КОЛ?


6-1185723678
Debug
2007-07-29 19:41
2008.05.04
Разрыв соединения с многопоточным сервером





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский