Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 03.12.2023
Сообщений: 7
GraphABC

Вывод малых изображений

22.08.2024, 23:33. Показов 1074. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача:
Мне нужно произвести вывод малого изображения из файла, к примеру 64x64 пикселя, в модуле GraphABC.
Для этого я использовал класс Picture.
Pascal
1
2
3
4
5
6
7
uses
   GraphABC;
var
   sprite :Picture :=new Picture ( 'C:\Path\File.png' ); //Создаем переменную и назначаем ей свойства изображения из файла.
begin
  sprite.Draw( 1, 1, 320, 320 );  //Выводим изображение, но для того, чтобы оно не было слишком маленьким, увеличиваем его в 5 раз. (Изображение 64х64, а выводим 320х320, увеличивая каждый пиксель)
end.
Проблема:
При выводе изображение становится мутным и размывается.
Во вложениях видна разница между изначальным рисунком и его изменением при выводе в Pascal.

Прошу подсказать, что сделать, чтобы исправить ошибку, или рассказать про альтернативный способ.
Заранее спасибо за помощь!
Миниатюры
Вывод малых изображений  
Изображения
 
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2024, 23:33
Ответы с готовыми решениями:

Вывод изображений
Всем привет. Подскажите как вывести изображения в галлереи в подобном виде. Может кто видел готовую галлерею. Вобщем буду рад всем советам...

Вывод изображений из БД
Коротко: В reyting.php вывожу изображения из БД через файл image.php echo...

Вывод изображений
Здравствуйте... Возникла проблема мне нужно сделать программу на java. суть в следующем... 1) есть две переменные им присвоены имена...

12
231 / 172 / 71
Регистрация: 14.06.2024
Сообщений: 468
23.08.2024, 02:42
Pascal
1
2
3
4
5
6
7
8
9
uses GraphABC;
uses System.Drawing;
var
   bmp:Bitmap:=new Bitmap('TipoSprite.png');
begin
  GraphWindowGraphics.SmoothingMode:=System.Drawing.Drawing2D.SmoothingMode.Default;
  GraphWindowGraphics.InterpolationMode:= System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
  GraphWindowGraphics.DrawImage(bmp,1,1,320,320);
end.
0
 Аватар для agvego5
48 / 39 / 10
Регистрация: 18.09.2023
Сообщений: 256
23.08.2024, 10:17
Цитата Сообщение от udmurt2024 Посмотреть сообщение
.DrawImage(bmp,1,1,320,320);
а у меня картинка долю секунды показывается и исчезает

Добавлено через 2 минуты
Цитата Сообщение от ELias171727 Посмотреть сообщение
При выводе изображение становится мутным и размывается.
верхний рисунок хоть не моргает
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
23.08.2024, 11:41
Попробуйте добавить SmoothingMode из той программы в свою.
0
0 / 0 / 0
Регистрация: 03.12.2023
Сообщений: 7
23.08.2024, 12:40  [ТС]
К сожалению, не работает. Изображение быстро моргает и удаляется. Если постоянно выполнять "DrawImage" с помощью цикла, изображение останется, но вылезет ошибка.
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
23.08.2024, 12:41
Я говорю SmoothingMode из кода который предложили вставить в код с нормальным рисованием средствами GraphABC.
0
0 / 0 / 0
Регистрация: 03.12.2023
Сообщений: 7
23.08.2024, 12:48  [ТС]
Сделал так, изображение все равно размытое
Pascal
1
2
3
4
5
6
7
uses GraphABC;
var
   sprite :Picture :=new Picture( 'C:\Programs\Sprites\TipoSprite.png' );
begin
  GraphWindowGraphics.SmoothingMode:=System.Drawing.Drawing2D.SmoothingMode.Default;
  sprite.Draw( 0, 0, 320, 320 );
end.
0
231 / 172 / 71
Регистрация: 14.06.2024
Сообщений: 468
23.08.2024, 12:57
Цитата Сообщение от ELias171727 Посмотреть сообщение
все равно размытое
пост #2 один в один не работает?
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
23.08.2024, 12:59
Ок, попробуйте другие значения, кроме SmoothingMode.Default

Если вы уберёте и сразу поставите назад точку перед Default - вам покажет какие ещё значения можно туда сувать. К примеру там есть None - типа никакого сглаживания.
0
231 / 172 / 71
Регистрация: 14.06.2024
Сообщений: 468
23.08.2024, 13:01
Лучший ответ Сообщение было отмечено ELias171727 как решение

Решение

вот еще бубны:
Pascal
1
2
3
4
5
6
7
8
9
10
uses GraphABC;
var
   pic:Picture:=new Picture('TipoSprite.png');
   sprite:Picture:=new Picture(320,320);
begin
  sprite.gb.SmoothingMode:=System.Drawing.Drawing2D.SmoothingMode.Default;
  sprite.gb.InterpolationMode:= System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
  sprite.gb.DrawImage(pic.bmp,0,0,320,320);
  sprite.Draw(1,1);
end.
1
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
23.08.2024, 13:08
sprite.gb используются когда рисуют НА спрайте:
Pascal
1
  sprite.Line(...)
Когда рисуют спрайт на окне - используется объект Graphics окна - то есть тот самый GraphWindowGraphics. Или GraphBufferGraphics, если вызвали LockDrawing.
0
231 / 172 / 71
Регистрация: 14.06.2024
Сообщений: 468
23.08.2024, 13:16
НА нём и рисуют, а потом ЕГО выводят(легко проверяется),
вот еще вариант:
Pascal
1
2
3
4
5
6
7
8
uses GraphABC;
var
   sprite:Picture:=new Picture('TipoSprite.png');
begin
  GraphWindowGraphics.SmoothingMode:=System.Drawing.Drawing2D.SmoothingMode.Default;
  GraphWindowGraphics.InterpolationMode:= System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
  sprite.Draw(1,1,320,320);
end.
0
0 / 0 / 0
Регистрация: 03.12.2023
Сообщений: 7
23.08.2024, 16:56  [ТС]
Предпоследний вариант сработал
Pascal
1
2
3
4
5
6
7
8
9
10
uses GraphABC;
var
   pic:Picture:=new Picture('C:\Programs\Sprites\TipoSprite.png');
   sprite:Picture:=new Picture(320,320);
begin
  sprite.gb.SmoothingMode:=System.Drawing.Drawing2D.SmoothingMode.Default;
  sprite.gb.InterpolationMode:= System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
  sprite.gb.DrawImage(pic.bmp,0,0,320,320);
  sprite.Draw(1,1);
end.
Спасибо вам большое за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.08.2024, 16:56
Помогаю со студенческими работами здесь

Вывод изображений
не знаю как мне вывести более одного изображения из базы данных в проекте java, запрос работает вот часть кода: c = new Canvas(shell,...

Вывод изображений из БД
Всем доброго времени суток, такая проблема, нашёл функцию, которая при выгрузке из БД изображений, уменьшает её размер, но она не работает,...

Вывод изображений из бд
Здравствуйте, хочу сделать вывод изображений из бд с превью на JS, точнее у меня есть все скрипты переделать не получается... Вот...

Вывод изображений
Люди помогите!!! В программе генерируется определенное число, мне надо что бы выводилось изображение с таким же именем. Пример:...

загрузка и вывод изображений
Мне нужно, чтобы пользователь загружал сканы документов на сайт, а администратор мог потом их просматривать. Как это реализовать? ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru