IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Работа с графикой, Использование GetViewSettings
сообщение
Сообщение #1


Гость






Есть такая задача: Строится некоторое изображение
Запоминается его определенная область с помощью SetViewPort
Затем некоторый диалог с пользователем в текстовом режиме
Возврат в графический режим и попытка вернуть на экран изображение, которое запомнилось в SetViewPort, c помoщью GetViewSettings.

Суть вопроса заключается в том,чтобы правильно указать данные для этой процедуры (не очень понятно как использовать параметр ViewInfo)
Буду очень признательна,если приведете конкретный пример)


SetViewPort(10,10,110,110,Clipon);
...
...
...
GetViewSettings(??????)
Заранее спасибо)
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Ну, начнем с того, что SetViewPort ничего не запоминает, эта процедура просто напросто устанавливает размеры текущего вьюпорта... Запоминание делать так:

var
Buffer: Pointer;
size: integer;
...
size := ImageSize(x1, y1, x2, y2); { <--- размеры области }
{
!!!!!
Если размер картинки из области, которую ты хочешь сохранить
будет больше 64К, то size будет = 0, и GetResult (сразу после вызова ImageSize)
вернет значение grError, потому, что ты все равно не сможешь выделить кусок памяти
такого размера... Тогда придется разбивать изображение на части...
}

GetMem(Buffer, size);
GetImage(x1, y1, x2, y2, Buffer^);
{ В принципе, можно и в файл записать... Для надежности }

... { <-- Здесь делаешь, что тебе надо }

{ Восстанавливаем картинку: }
PutImage(x1, y1, Buffer^, NormalPut);
FreeMem(Buffer, size); { <--- Освобождаем буфер }
...

 К началу страницы 
+ Ответить 

Сообщений в этой теме
-=Cherry=-   Работа с графикой   14.01.2007 13:55
volvo   Ну, начнем с того, что SetViewPort ничего не запом…   14.01.2007 14:15
-=Cherry=-   Buffer^ - это обращение через динамическую память?…   14.01.2007 14:23
Гость   А еще хотела спросить FreeMem и GetMem - это ста…   14.01.2007 14:26
volvo   :yes2: Он просто запоминает установки (размеры и …   14.01.2007 14:42
-=Cherry=-   Разве может Help (пусть даже и мега -полноценный,ч…   14.01.2007 14:46
-=АнЮтА=-   Хочу спросить, а как можно сохранить в файл и как …   17.01.2007 18:35
volvo   После GetImage делаешь Assign(f, 'pic.dat…   17.01.2007 19:33
-=АнЮтА=-   Спасибо, щас попробую)   17.01.2007 19:39
-=АнЮтА=-   а что значит 1,когда открываем на чтение файл и ка…   17.01.2007 19:59
volvo   Если ты про второй параметр Reset/Rewrite, то это …   17.01.2007 20:12
-=АнЮтА=-   Да, была бы очень признательна за ссылку)   17.01.2007 20:19
volvo   Здесь: Модули для вывода графики. (bmp, Pcx ...)   17.01.2007 20:21
-=АнЮтА=-   :give_rose: Спасибо Вам за помощь! :good: Все …   17.01.2007 20:43


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.12.2025 17:09
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name