5 / 5 / 0
Регистрация: 27.09.2015
Сообщений: 102
1

Захват скриншота не работает в Маке

06.03.2019, 01:22. Показов 25195. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привожу кусок кода, в котором я захватываю в скриншот то, что отображает бразуер. Под Виндой все прекрасно работает, а вот в Маке скриншоты создаются пустыми. Что может быть не правильно?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
TBitmap* TForm1::getScreenshotWebBrowser() {
    TBitmap *BitmapBuffer;
    TBitmap *bmp_Scrhot = new TBitmap;
    // Фиксируем размер снимаемой области
    TRectF SourceRect(0, 0, WebBrowser1->Width, WebBrowser1->Height);
    TRect Rect_bmp(0, 0, WebBrowser1->Width, WebBrowser1->Height);
    // Создаем временный буфер для получения скриншота
    BitmapBuffer = new TBitmap(SourceRect.Width(), SourceRect.Height());
    try {
        // Переводим канву в режим отрисовки - начинаем процесс отрисовки сцены
        if (BitmapBuffer->Canvas->BeginScene())
            try {
            // Говорим контролу отрисовать себя в канве нашего буфера в указанной области
            WebBrowser1->PaintTo(BitmapBuffer->Canvas, SourceRect);
            }
        __finally {
            // Завершаем процесс отрисовки, заканчивая формируемую сцену
            BitmapBuffer->Canvas->EndScene();
        }
        BitmapBuffer->SaveToFile(GetHomePath() +"/screenshot1.png");
        bmp_Scrhot->Width = Rect_bmp.Width();
        bmp_Scrhot->Height = Rect_bmp.Height();
        bmp_Scrhot->CopyFromBitmap(BitmapBuffer, Rect_bmp, 0, 0);
        bmp_Scrhot->SaveToFile(GetHomePath() +"/screenshot2.png");
    }
    __finally {
        delete BitmapBuffer;
    }
    return bmp_Scrhot;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2019, 01:22
Ответы с готовыми решениями:

Сохранение скриншота - программа не работает, если загружается при старте системы
Всем привет! У меня возникла проблема с сохранением скриншота. Дело в том, что при ручном запуске...

Не работает захват видео
выдаёт вот такие ошибки: Первый этап обработки исключения в "0x7c80be74 (kernel32.dll)" в...

Pinnacle Studio 12.1.3 не работает кнопка"ЗАХВАТ" видео.
Кнопка "Захват" не реагирует на нажатие .Советовали установить патч не помогло ....HELP ME!

Оракл на маке
Люди добрые подскажите где скачать дистрибютив для мака, от Оракл. Sql developer уже скачал но...

2
5 / 5 / 0
Регистрация: 27.09.2015
Сообщений: 102
07.03.2019, 23:32  [ТС] 2
Дальнейшие эксперименты показали, следующее... У меня есть форма и внутри нее канва браузера. Я стал снимать скриншот не только с канвы, а со всей формы. Так вот - в данном случае скриншот не весь пустой, - на него попадают элементы управления формы (кнопки и пр.), но находящая внутри скриншота канва браузера пуста. Ощущение что отображаемые браузером html фалы не относятся к графике и не захватываются. Напоминанием попытку снять скриншот кино в видеоплеер с помощью клавиши printscreen, там тоже окно видеоплеера будет присутствовать, но его содержимое - нет.

Напомню, что такая бага присутствует только в Маке, - в Винде скриншоты захватываются нормально.
0
5 / 5 / 0
Регистрация: 27.09.2015
Сообщений: 102
29.03.2019, 19:15  [ТС] 3
Неожиданно выяснилось, что все работает на Mac Sierra при постройке и в Билдере 10.1 и 10.3, а вот все версии Mac OS X выше - выдают пустой скриншот. Может быть это что-то подскажет?
0
29.03.2019, 19:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2019, 19:15
Помогаю со студенческими работами здесь

Про лазарус на маке
Добрый день! Возник такой вопрос. Если lazarus работает под Виндой, то, например, для вызова...

виндоус хр не запускается. на маке
У меня макбук простенький. стоит винда хр. образовалась проблема. запускаю винду, доходит до окошка...

Не запускается RDP на маке
Всем привет Заказал ВПС с Windows Server 2016. Создал там новый аккаунт. Под него сделал RDP....

Web Server на маке
Доброго времени суток Возникла у меня идея поднять дома небольшой сервер для тестирования моего...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru