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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2009, 17:41   #1
Лукманов Александр
работа не волк....
Форумчанин
 
Аватар для Лукманов Александр
 
Регистрация: 09.06.2008
Сообщений: 337
Вопрос Как избежать сужения (уменьшение размера) пикселей изображения, при включенном свойстве Stretch?

Как я понял, что при использование stretch:=true, пиксели уменьшаются, и не соответствуют значению Height и Width.

Например при копирование изображения с одного Image, в другой - конечное изображение получается намного меньше "оригинала".

Как быть? Помогите плиз.
Цель, для которой требуются неправые средства, не есть неправая цель.
Лукманов Александр вне форума Ответить с цитированием
Старый 20.05.2009, 21:16   #2
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Здесь экстросенсов нет.Код нужен.
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 20.05.2009, 22:22   #3
Лукманов Александр
работа не волк....
Форумчанин
 
Аватар для Лукманов Александр
 
Регистрация: 09.06.2008
Сообщений: 337
По умолчанию

Код:
image1.Stretch:=true;
image1.PictureLoadFromFile('1.bmp');
//image2 пустой.
for i:=0 to width do
for j:=0 to height do 
image2.Canvas.Pixels[i,j]:=image1.Canvas.Pixels[i,j];
end;
Цель, для которой требуются неправые средства, не есть неправая цель.
Лукманов Александр вне форума Ответить с цитированием
Старый 20.05.2009, 22:33   #4
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Код:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
Image1.Stretch:=True;
Image1.Picture.LoadFromFile('1.bmp');
Image2.Picture:=Image1.Picture;
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 21.05.2009, 17:56   #5
Лукманов Александр
работа не волк....
Форумчанин
 
Аватар для Лукманов Александр
 
Регистрация: 09.06.2008
Сообщений: 337
По умолчанию

спасибо. копирование картинок помогло. но всё же это не главный вопрос.

Цитата:
Как избежать сужения (уменьшение размера) пикселей изображения, при включенном свойстве Stretch?
к примеру.. тут искажение пикселей заметно.
Цель, для которой требуются неправые средства, не есть неправая цель.
Лукманов Александр вне форума Ответить с цитированием
Старый 21.05.2009, 22:14   #6
-HunteR-
Форумчанин
 
Аватар для -HunteR-
 
Регистрация: 04.11.2007
Сообщений: 117
По умолчанию

Лукманов Александр
Если я тебя правильно понял, то никак. Потому что мень пикселя на экране ничего нет, а значит при сжатии несколько пикселей разного цвета объеденятся в один со средним цветом.
Перед тем, как выложить код, я его всегда проверяю.
Если помог - тыкни на на весы слева, под аватарой.
-HunteR- вне форума Ответить с цитированием
Старый 22.05.2009, 08:49   #7
Лукманов Александр
работа не волк....
Форумчанин
 
Аватар для Лукманов Александр
 
Регистрация: 09.06.2008
Сообщений: 337
По умолчанию

Цитата:
Если я тебя правильно понял, то никак. Потому что мень пикселя на экране ничего нет, а значит при сжатии несколько пикселей разного цвета объеденятся в один со средним цветом.
Жаль. У меня были мысли чтобы перед считыванием пикселей увеличить картинку до реальных размеров, а потом вернуть в исходное положение. Или как нибудь реальную ширину-длину разделить на отображаемую, а потом при в суженом изображение перебирать например по 1/3 пикселя.
Цель, для которой требуются неправые средства, не есть неправая цель.
Лукманов Александр вне форума Ответить с цитированием
Старый 26.10.2009, 03:57   #8
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Пол года теме ... ну что никто не знает как избежать жуткого искажения ?
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 26.10.2009, 09:52   #9
Garacio_cain
Пользователь
 
Аватар для Garacio_cain
 
Регистрация: 05.01.2008
Сообщений: 85
По умолчанию

Вариант первый. Загрузить изображение в переменную
Код:
var
  jpeg: TJpegImage;
--------
jpeg.LoadFromFile('1.bmp');
image1.Stretch:=true;
image1.Proportional:=true;
image1.Picture.Graphic := jpeg;
image2.Stretch:=false;
image2.Proportional:=false;
image2.Picture.Graphic := jpeg;
Вариант второй. Перегружать изображение из первого Image во второй Image
Код:
image1.Picture.LoadFromFile('1.bmp');
image2.Picture.Graphic := image1.Picture.Graphic;
В обоих вариантах искажения пикселей не наблюдается.
Garacio_cain вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Качественное изменение размера изображения... Dr. MefistO Мультимедиа в Delphi 5 15.07.2009 17:22
Как при постройке графика избежать диления на 0 Zerony Общие вопросы Delphi 9 12.01.2009 18:02
Уменьшение размера ехе файлов Terran Общие вопросы Delphi 20 23.01.2008 23:03
Изменение размера изображения, Crop image to fit height & width loopy-need Общие вопросы Delphi 4 23.11.2006 10:23