Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
3 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 522
1

Заменить цвет пикселя, сделать более насыщеным

26.06.2019, 16:23. Показов 2462. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Подскажите пожалуйста, как сделать картинку более насыщенно.
Я взял картинку из другой программы, загрузил в image, но, она ни так отображается. Почему так?
Мой проект с право.....
Миниатюры
Заменить цвет пикселя, сделать более насыщеным  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2019, 16:23
Ответы с готовыми решениями:

Цвет пикселя
Ребята, можно ли сохранить цвет пикселя, на которую ты нажал левой кнопкой мыши, в переменную типа...

Цвет пикселя!
Ищу в Image все пикселя белового цвета и задаю им другой цвет, но какой бы я цвет не задал (clBlue,...

Цвет пикселя scanline
Здравствуйте, начал изучать делфи, взял стандартную задачку, найти на картинке нужный пиксель, по...

Цвет пикселя под курсором
procedure TForm1.tMR1Timer(Sender: TObject); var p: TPoint; DC: HDC; begin ...

20
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
26.06.2019, 17:06 2
размер не совпадает, ее автоматически сжимает


Цитата Сообщение от DDim1000 Посмотреть сообщение
более насыщенно
насыщенной

Цитата Сообщение от DDim1000 Посмотреть сообщение
ни так отображается
не так

Цитата Сообщение от DDim1000 Посмотреть сообщение
с право
с права

блин, включи проверку правописания
0
236 / 28 / 18
Регистрация: 08.05.2011
Сообщений: 185
26.06.2019, 17:14 3
Это может быть из-за уменьшения масштаба картинки.
Для эксперимента в свойствах объекта Image параметр AutoSize поставьте в True и посмотрите как изменится результат
0
884 / 586 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
26.06.2019, 18:08 4
Цвет фона абсолютно одинаковый.
Размер буковок чуть разный, так что возможна потеря "толстоты" и "чёткости" из-за ужимания.
В каком формате это у вас? Тупо картинка? Почему не какой-нить движок отчётов?
0
3 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 522
26.06.2019, 19:03  [ТС] 5
Цитата Сообщение от hodas4 Посмотреть сообщение
Это может быть из-за уменьшения масштаба картинки.
А как с этим бороться?...
Цитата Сообщение от GoodWeather Посмотреть сообщение
...В каком формате это у вас? Тупо картинка?...
Формат bmp; Картинка загружена в image.
Когда включаю AutoSize, тогда все ОК, но тогда картинка очень большая......
0
3584 / 2194 / 692
Регистрация: 29.05.2013
Сообщений: 9,366
26.06.2019, 19:52 6
Никак. Для битмапа это естественное состояние - искажение при растягивании сжатии, особенно на некратное значение. Единственный способ масштабирования без потерь это перевод в векторный формат.
0
Модератор
3628 / 2149 / 759
Регистрация: 15.11.2015
Сообщений: 8,628
26.06.2019, 20:44 7
Зачем всё это? Масштабирование Image влияет только на отображение на экране, а сама картинка в памяти сидит без изменений.
0
3 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 522
26.06.2019, 21:46  [ТС] 8
Цитата Сообщение от Пытливый Посмотреть сообщение
икак. Для битмапа это естественное состояние - искажение при растягивании сжатии, особенно на некратное значение. Единственный способ масштабирования без потерь это перевод в векторный формат.
А вот эта программа тоже с использованием векторной графики? Или она сама выводит подписи по верх тех, что на изображении ?(смотрите прикрепленный архив)
Вложения
Тип файла: rar proga.rar (341.3 Кб, 7 просмотров)
0
3 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 522
26.06.2019, 22:04  [ТС] 9
В папке с программой есть файлы PrintForm1.fcr и PrintForm2.fcr. Я открыл их с помощью Блокнота, там встречаются все названия полей..., может они каким-то образом накладываются на картинку? Или они служат для сохранения в файл?
0
3584 / 2194 / 692
Регистрация: 29.05.2013
Сообщений: 9,366
26.06.2019, 22:21 10
Это как раз два векторных файла, но в нестандартном формате.
0
3 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 522
27.06.2019, 07:56  [ТС] 11
Цитата Сообщение от Пытливый Посмотреть сообщение
...Единственный способ масштабирования без потерь это перевод в векторный формат.
А как потом SVG загрузить в Image?
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
27.06.2019, 08:23 12
зачем вообще картинку на форму ложить?
0
3 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 522
27.06.2019, 09:09  [ТС] 13
Цитата Сообщение от qwertehok Посмотреть сообщение
зачем вообще картинку на форму ложить?
А как тогда?.......
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
27.06.2019, 09:22 14
что бы знать "как" надо знать "зачем"
0
3 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 522
27.06.2019, 09:46  [ТС] 15
Цитата Сообщение от qwertehok Посмотреть сообщение
что бы знать "как" надо знать "зачем"
Как сделать так, чтоб картинка, загруженная в image, при сжатии размера отображалась нормально....
Мне сказали:
Цитата Сообщение от Пытливый Посмотреть сообщение
Единственный способ масштабирования без потерь это перевод в векторный формат.
Ну, я и конвертировал bmp в svg... А как его использовать, я не знаю.... В браузере открывается, а в image никак не загрузить...
0
Модератор
3628 / 2149 / 759
Регистрация: 15.11.2015
Сообщений: 8,628
27.06.2019, 09:56 16
Цитата Сообщение от DDim1000 Посмотреть сообщение
Как сделать так, чтоб картинка, загруженная в image, при сжатии размера отображалась нормально....
Что значит "нормально"? Чем сейчас плохо? Image включает сглаживание и при уменьшении картинки всё хорошо видно.

Добавлено через 2 минуты
А, нет, не сглаживает. Сейчас код подгоню.
0
105 / 92 / 44
Регистрация: 26.07.2015
Сообщений: 197
27.06.2019, 10:11 17
Попробуй вставить эту картинку. Я её заресайзил с фильтром Ланцоша. При ширине в 800 пикселей она должна смотреться лучше.
Вложения
Тип файла: rar Original1_LN_resized_to_800x1131.rar (208.3 Кб, 5 просмотров)
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
27.06.2019, 10:19 18
Цитата Сообщение от DDim1000 Посмотреть сообщение
Как сделать так, чтоб картинка, загруженная в image, при сжатии размера отображалась нормально....
а может убрать картинку?
зачем она нужна?
кинул панель, на панель кучу эдитов и все
0
Модератор
3628 / 2149 / 759
Регистрация: 15.11.2015
Сообщений: 8,628
27.06.2019, 11:00 19
DDim1000, во первых, лучше бы положить бланк рядом с файлом в папку. Но если надо именно в Image, то надо всё равно исходную картинку сохранить, и загружать туда не BMP, а JPEG. Вот код. Если загрузка с диска, то так и оставить. Если из Image, то раскомментировать закомментированный скобками { {} блок и закомментировать блок загрузки с диска. Не забыть вставить в uses модуль Jpeg.

Delphi
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Jpeg;
 
type
  TForm1 = class(TForm)
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    sbmap: TBitmap;
    procedure RestoreImage(Bitmap: TBitmap; Image: TImage);
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.RestoreImage(Bitmap: TBitmap; Image: TImage);
begin
  with Image.Picture.Bitmap do begin
    Width  := Image.Width ;
    Height := Image.Height;
    PixelFormat := pf32bit;
    Canvas.Lock;
    // Задать режим масштабирования со сглаживанием
    SetStretchBltMode(Canvas.Handle, HALFTONE);
    // Скопировать картинку с масштабированием
    StretchBlt(Canvas.Handle, 0, 0, Width , Height, Bitmap.Canvas.Handle,
               0, 0, Bitmap.Width , Bitmap.Height, SRCCOPY);
    Canvas.Unlock;
  end;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var
  pic: TPicture;
begin
  // Создать битмап, где будет находится исходный бланк
  sbmap := TBitmap.Create;
 
  // Загрузить бланк из файла JPEG
  pic := TPicture.Create;
  pic.LoadFromFile(ExtractFilePath(Application.ExeName) + 'blank.jpg');
 
  // Скопировать исходный бланк в битмап
  sbmap.Width  := pic.Width ;
  sbmap.Height := 1;
  sbmap.PixelFormat := pf32bit;
  sbmap.Height := pic.Height; // действий больше, а памяти перелопачивает меньше
  sbmap.Canvas.Draw(0, 0, pic.Graphic);
  pic.Destroy;{}
 
  // Скопировать картинку из Image в исходный битмап, если картинка хранится в Image
{  sbmap.Width  := Image1.Picture.Width ;
  sbmap.Height := 1;
  sbmap.PixelFormat := pf32bit;
  sbmap.Height := Image1.Picture.Height;
  sbmap.Canvas.Draw(0, 0, Image1.Picture.Graphic);{}
 
  // Скопировать картинку из исходного битмап в Image
  // В дальнейшем, при изменении размера Image просто вызывать эту процедуру ещё раз
  RestoreImage(sbmap, Image1);
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
  sbmap.Destroy;
end;
 
end.
Добавлено через 55 секунд
У Image свойство Stetch и AutoSize установить в false.
0
3 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 522
02.07.2019, 18:44  [ТС] 20
Цитата Сообщение от AzAtom Посмотреть сообщение
У Image свойство Stetch и AutoSize установить в false.
Цитата Сообщение от AzAtom Посмотреть сообщение
// В дальнейшем, при изменении размера Image просто вызывать эту процедуру ещё раз
* RestoreImage(sbmap, Image1);
А как уменьшить масштаб? чтоб картинка не на весь экран была.
0
02.07.2019, 18:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2019, 18:44
Помогаю со студенческими работами здесь

Перемещени курсора на цвет пикселя
мне нужно когда я нажимаю Mouse1(НЕ ТОЛЬКО В ПРОГРАММЕ,а И НА РОБОЧЕМ СТОЛЕ ,к примеру), то курсор...

Получить цвет пикселя с альфаканалом
Здравствуйте. Как получить цвет указанного пикселя с альфаканалом из файла png? Так...

Как определить цвет пикселя по курсором?
Подскажите, задача такая: Я перемещаю курсор в определенные координаты, мне нужно определить цвет...

Можно ли получить цвет пикселя картинки, не выводя ее?
Здравствуйте. Подскажите, можно ли получить цвет определенного пикселя картинки, не выводя ее на...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru