делаю некую программу, которая из маленьких квадратных кусочков собирает большое изображение. пример:
code_1496.txt
понажимать на кнопку, на элементе Image будут появлятся кусочки рабочего стола (50х50)
проблема в том, что не получается сохранить полученный результат. да и при большом кол-ве картинок хотелось бы использовать не Image, а что-то не визуальное, чтобы в памяти хранилось а потом записывалось.
Но элемент Bitmap (Хранение картинки в памяти) не подходит, ибо при каждом добавлении он обнуляется, и остается только последний кусочек.
не сохраняет видимо потому, что на точке ImageBitmap(содержит картинку) пусто, так как вывод идет через хэндл элемента. если указать bitmap - то ничего не рисует.
подскажите, как хотя бы в приведенной схеме сделать сохранение (желательно в bmp)?
Этот топик читают: Гость
Ответов: 499
Рейтинг: 1
|
|||
карма: 0 |
| ||
файлы: 1 | code_1496.txt [976B] [249] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
1) в приведенной схеме компонент Bitmap можно удалить не потеряв при этом абсолютно ничего
2) для решения задачи нужно проделать две вещи: - при старте программы задать нужный размер холста примерно так:
после этого можно компонентом PictureStream сохранять его в файл HikeR писал(а): Но элемент Bitmap (Хранение картинки в памяти) не подходит, ибо при каждом добавлении он обнуляетсяот точки с названием doLoad было бы странным ожидать ф-ности, которой обычно наделяют точку doAppend... |
|||
карма: 27 |
|
Ответов: 499
Рейтинг: 1
|
|||
ура, работает, спасибо.
но медлеееееенно.... 70 метров исходных bmp файлов почти 20 минут склеивал... |
|||
карма: 0 |
|
Разработчик
Ответов: 26304
Рейтинг: 2146
|
|||
HikeR, а никто и не говорил, что будет быстро. Методы отрисовки в HiAsm'e изначально медленные. Странно, почему никто не занялся их ускорением, а ведь это не так уж и сложно, но это мысли вслух
![]() |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): Методы отрисовки в HiAsm'e изначально медленныеТак уж и в HiAsm ![]() Ты еще спроси: сколько весит полная картинка в bmp-формате (при приеме, скажем, 70М pcx, или jpeg-ов), сколько у него оперативки, и не занимается ли винда при этом изменением размера файловой страницы Народу, вообще, похоже невдомек, чем килограмм от гектара отличается - ай долго чего-то ![]() |
|||
карма: 9 |
|
Разработчик
Ответов: 26304
Рейтинг: 2146
|
|||
Galkov писал(а): при приеме, скажем, 70М pcx, или jpeg-овБез вопросов. Размеры гигантские. Ну и методы отрисовки желают лучшего. Широко не применяются, например, отрисовка в аппаратно независимом DIB формате на контекстах памяти с последующим переносом на контекст устройства готовых блоков. Короче -- над этим работать и работать надо. ИМХО. |
|||
карма: 22 |
|
Ответов: 499
Рейтинг: 1
|
|||
Galkov писал(а): Ты еще спроси: сколько весит полная картинка в bmp-формате (при приеме, скажем, 70М pcx, или jpeg-ов), сколько у него оперативки, и не занимается ли винда при этом изменением размера файловой страницыитоговая картинка - 10752х10752, 110 метров. в мозаике часть кусочков отсутствует, на их место просто черный квадрат впихивается. памяти у меня 2 гига, во время работы полученной программы обращения к винту нет совсем. и все равно, имхо очень медленно. склеивание картинки 4х4 и 8х8 по времени отличается не то что в разы, на порядки. для такой задачи похоже надо файлы на бинарном уровне склеивать, bmp разбирать, и писать прямо в файл. |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
HikeR писал(а): для такой задачи похоже надо файлы на бинарном уровне склеивать, bmp разбирать, и писать прямо в файл.именно. nesco писал(а): отрисовка в аппаратно независимом DIB формате на контекстах памяти с последующим переносом на контекст устройства готовых блоков.для задач пользовательского уровня существующие методы вполне приемлемы. Для приложений же интенсивно отображающих графику нужно использовать OpenGL, DirectX или GDI+ на худой конец. |
|||
карма: 27 |
|
8