Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для DrSMERTb
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841

Сохранения фрагмента экрана

23.08.2012, 22:56. Показов 1304. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Кто может подсказать как можно "сфотать" не весь экран а только его часть задав определённые координаты?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.08.2012, 22:56
Ответы с готовыми решениями:

Увеличение фрагмента экрана
Здравствуйте У меня телефон Sony Xperia Ion (андроид 4.1.2) Посоветуйте приложение для андроид (если такое существует) - Увеличение...

скриншот области 128x96 экрана и сохранения в rgb565.bin
пытаюсь написать программу, которая копирует область экрана размером 128x96, преобразует его в 16 битный rgb формат и сохраняет в таком...

Выделение фрагмента строки и создание новой на основе этого фрагмента
У меня есть переменная var a = 'file:///D:/папка/myfile.jpg' Мне нужно выделить из переменной a имя файла (myfile.jpg) и создать другую...

11
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
23.08.2012, 23:00
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void __fastcall TForm1::Photo()
{
    TRect ScreenRect;
    TCanvas* ScreenCanvas=new TCanvas;
    try{
        Top=0;
        Left=Screen->Width;
        Width=Screen->Width;
        Height=Screen->Height;
        ScreenRect=Rect(0,0,Width-0,Height-0);
        ScreenCanvas->Handle=GetDC(0);
        Image1->Canvas->CopyRect(ScreenRect, ScreenCanvas,ScreenRect);
        ReleaseDC(Handle,ScreenCanvas->Handle);
        Left=Top;
    } __finally{
        delete ScreenCanvas;
    }
}
2
 Аватар для DrSMERTb
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
23.08.2012, 23:02  [ТС]
Спасибо сейчас попробую)
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.08.2012, 23:21
Здесь ошибка
C++
1
ReleaseDC(Handle,ScreenCanvas->Handle);
0
 Аватар для DrSMERTb
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
23.08.2012, 23:51  [ТС]
Цитата Сообщение от ivan.-94 Посмотреть сообщение
void __fastcall TForm1::Photo()
{
TRect ScreenRect;
TCanvas* ScreenCanvas=new TCanvas;
try{
Top=0;
Left=Screen->Width;
Width=Screen->Width;
Height=Screen->Height;
ScreenRect=Rect(0,0,Width-0,Height-0);
ScreenCanvas->Handle=GetDC(0);
Image1->Canvas->CopyRect(ScreenRect, ScreenCanvas,ScreenRect);
ReleaseDC(Handle,ScreenCanvas->Handle);
Left=Top;
} __finally{
delete ScreenCanvas;
}
}
Здесь проблема, если я меняю крайний верхний угол не (0.0) а ставлю другие координаты то он не обрезает как надо вест скрин а просто забеляет всё что сверху этих координат

Добавлено через 6 минут
Собственно и с низу тоже....
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
24.08.2012, 00:10
Цитата Сообщение от Avazart Посмотреть сообщение
Здесь ошибка
Какая? у меня всё работает
Цитата Сообщение от DrSMERTb Посмотреть сообщение
Здесь проблема, если я меняю крайний верхний угол не (0.0) а ставлю другие координаты то он не обрезает как надо вест скрин а просто забеляет всё что сверху этих координат
Да.
0
 Аватар для DrSMERTb
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
24.08.2012, 00:21  [ТС]
Ну значит ответ не по теме получился) Мне же не надо было забедить область вокруг заданных координат)
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
24.08.2012, 00:40
DrSMERTb, мыслите шире, скопируйте нужный регион и на 2-гой имедж поместите
0
 Аватар для DrSMERTb
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
24.08.2012, 01:12  [ТС]
ivan.-94 , но в чём смысл тогда забелять? То что он будет на метр оперы больше жрать меня не интересует т.к. фотает он однократнго а не в цикле. С тем же успехом я могу просто скрин взять и потом скопировать нужный фрагмент... Мне было интересно сразу сфотать только нужный фрагмент что бы увеличить скорость программы.... А так не вижу особого смысла)
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.08.2012, 01:22
Какая?
Не правильно освобождается контекст устройства может быть утечка памяти
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
24.08.2012, 08:13
Ну я все го лишь предложил
0
 Аватар для DrSMERTb
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
24.08.2012, 19:48  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Не правильно освобождается контекст устройства может быть утечка памяти
Вот так помоему надо:
C++
1
ReleaseDC(0, ScreenDC);
Добавлено через 1 час 28 минут
Просмотрел функции создания скриншота всего экрана, посмотрел функциюCopyRect и решил эту проблему)) Вот так надо:
C++
1
2
3
4
TCanvas* tCanvas = new TCanvas;
tCanvas->Handle = CreateDC("DISPLAY",NULL,NULL,NULL);
Image2->Canvas->CopyRect(Rect(0,0,Image2->Width,Image2->Height),tCanvas,Rect(X0,Y0,X1,Y1));
delete tCanvas;
Где X0,Y0-координаты верхнего угла прямоугольника, X1,Y1-координаты нижнего угла.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.08.2012, 19:48
Помогаю со студенческими работами здесь

Повторное создание фрагмента внутри фрагмента ViewPager
Доброго времени суток! Использую внутри фрагмента элемент ViewPager, который сам внутри содержит еще два фрагмента-вкладки. При первом...

Вызов фрагмента из фрагмента с использованием EventBus
Доброго времени суток! Можно ли использовать EventBus для того, что из Фрагмента 1 вызвать Фрагмент 2. Я понимаю, как...

Вызов фрагмента с RecycleView из другого фрагмента
Добрый день! Написал код, который из одного фрагмента (А) через кнопку вызывает другой фрагмент (Б). Все работало хорошо, пока не...

Как прочитать многострочные данные из файла с указанного фрагмента до указанного фрагмента?
Всех с наступающим! Есть файл с содержанием: Database: vip_stroitel Table: material +-----------+-------------+ | Column ...

Visual Studio Code Есть ли поддержка сохранения файла в 2х местах или запуска батника после сохранения
Здравствуйте. Кто знает есть ли в Visual Studio Code возможность сохранять файцл в 2х местах или запускать определенный батник после...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru