Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2011, 21:22   #1
atihiy2010
Пользователь
 
Аватар для atihiy2010
 
Регистрация: 22.04.2010
Сообщений: 60
По умолчанию Скрин экрана

Ребят, понимаю что уже обьежжена тема но все же. Нашел как делат Скрин экрана, нашел как сохранять его. Но есть проблема: сохраняет в 5 мб, желательно до 1 мб чтоб картинка выходила.... Вот что надо, по нажатию на кнопку1 - в Image1 занести скриншот, кнопка2 - сохранить в файл этот скриншот, как можно с меньшим обьемом, но чтоб при этом был виден текст который на скрине. Подскажите плиз, очень надо...
atihiy2010 вне форума Ответить с цитированием
Старый 17.03.2011, 21:31   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

конвертируите в JPG и сохраняите, будет намного меньше

PS. 'зачем вопрос, каку уменьшить размер изображения при сохранение', так длино и непонятно рапишвать
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 17.03.2011, 22:07   #3
atihiy2010
Пользователь
 
Аватар для atihiy2010
 
Регистрация: 22.04.2010
Сообщений: 60
По умолчанию

Кароче, нашел то что мне надо, но осталось одно - как мой скрин 1366х768 уменьшить для визуального отображения в Image1 который к примеру занимает половину формы. Тоесть сделал скрин, показал предварительно на Image в уменьшеном виде, и сохранил в полном?
Код:
begin
 bmp:=TBitmap.Create;
  jpgImg := TJPEGImage.Create;
    bmp.Height:=Screen.Height;
    bmp.Width:=Screen.Width;
    DC:=GetDC(0);
    bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
      DC, 0, 0, SRCCOPY);

  ReleaseDC(0, DC);
  Image1.Picture.Assign(bmp); //Отображаю, но оно не влазит)))
  jpgImg.Assign(bmp); {в JPG грузим Битмап}
  jpgImg.CompressionQuality:=100; {устанавливаем компрессию (качество) (1-100)}
  jpgImg.SaveToFile('Screen.jpg'); {сохраняем в формате JPG}
  jpgImg.Free;
  bmp.Free;
end;
atihiy2010 вне форума Ответить с цитированием
Старый 17.03.2011, 22:44   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Слушай, ну рядом же с BitBlt находятся StretchBlt и StretchDIBits - и даже ссылка в BitBlt на них есть.

И там же - ссылки на примеры:
http://msdn.microsoft.com/en-us/libr...02(VS.85).aspx
http://msdn.microsoft.com/en-us/libr...50(VS.85).aspx
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 17.03.2011, 22:56   #5
atihiy2010
Пользователь
 
Аватар для atihiy2010
 
Регистрация: 22.04.2010
Сообщений: 60
По умолчанию

Ну не силен я в этом. Признаю. Что в код добавить то а? Как работает этот StretchBlt?

Последний раз редактировалось atihiy2010; 17.03.2011 в 23:06.
atihiy2010 вне форума Ответить с цитированием
Старый 17.03.2011, 23:18   #6
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

сильно разбераца не охото в том чем вы сами не хотите, но могу сказать
что для сохранения надо использовать не то что в имадже, а тот скрин которыи зделали, которыи вы загружали в имадже
и еще у имаджа есть такое своиство
Image1.Picture.Bitmap
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 17.03.2011, 23:49   #7
atihiy2010
Пользователь
 
Аватар для atihiy2010
 
Регистрация: 22.04.2010
Сообщений: 60
По умолчанию

Решил свою проблему без сурового кода))) Свойство Stretch и Proportional компонента Image1 поставил в True. Спасибо всем участвующим.
atihiy2010 вне форума Ответить с цитированием
Старый 04.05.2012, 16:23   #8
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

а можно ли сделать скрин и на нести на него сетку, в квадратиках сетки указать их приблизительные координаты? или такое не возможно?
hacknet вне форума Ответить с цитированием
Старый 04.05.2012, 16:28   #9
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Конечно можно. Используй Canvas
FaTaL вне форума Ответить с цитированием
Старый 04.05.2012, 18:09   #10
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

Цитата:
Сообщение от FaTaL Посмотреть сообщение
Конечно можно. Используй Canvas
ни когда с ним не работал, даже не знаю с чего начать, может подкинете какой нибудь код?
hacknet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрин на видео. Alex Cones Общие вопросы Delphi 3 22.08.2013 08:50
Скрин в 16 бит Mihanches Общие вопросы Delphi 0 11.10.2010 11:55
Сплэш-скрин Johnson Общие вопросы Delphi 2 21.11.2009 12:03
Принт скрин MAcK Win Api 1 31.08.2007 20:48
Лого скрин Elm0 Свободное общение 10 23.06.2007 13:08