Форум: "Media";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
ВнизОбработка изображения Найти похожие ветки
← →
Lazarius (2005-11-16 16:59) [0]Здраствуйте всем!!!
Итак, в image1 надо загружать jpg, но не просто загрузить, а перед этим обрезать у картинки лишнее, т. е. надо чтобы картинка была по соотношению сторон 15*10
то есть если x ширина, а y высота, то ширина обрезанного изображения получается x1=y*1,5 где y высота первоначального изображения.
Так вот: как мне обрезать лишнее, что выходит за пределы нового размера????!!!!
Уже всю голову сломал! Помогите плиз!
Заранее всем спасибо.
← →
Jeer © (2005-11-16 17:06) [1]CopyRect ?
← →
Lazarius (2005-11-16 17:09) [2]ну вот с ним всю голову и сломал
← →
Antonn © (2005-11-16 17:18) [3]наверно потому, что в image не tbitmap?..
← →
Lazarius (2005-11-16 17:43) [4]Вот мой код:
Jpg.LoadFromFile(s);
x := jpg.Height * 1.5;
image1.picture.bitmap.Height := jpg.Height;
image1.picture.bitmap.Width := floor(x);
bitmap.Height := jpg.Height;
bitmap.Width := jpg.Width;
bitmap.Assign(jpg);
cw := (bitmap.Width mod 2) + floor(x/2);
image1.Picture.Bitmap.Canvas.CopyRect(Rect(0, 0, floor(x), jpg.Height),
Bitmap.Canvas,
Bounds(cw, 0, floor(x), jpg.Height));
но как то неправильно вырезается область. И не могу понять где ошибка.
← →
WondeRu © (2005-11-16 17:46) [5]Lazarius (16.11.05 17:43) [4]
bitmap.Assign(jpg);
тут
← →
Lazarius (2005-11-16 17:52) [6]а поточнее можно
ведь у жпг канвы нет и приходится переводить в битмап
← →
WondeRu © (2005-11-16 18:02) [7]ошибся чуть... чуть
image1.Height := jpg.Height;
image1.Width := floor(x);
image1.Canvas.Height := jpg.Height;
image1.Canvas.Width := floor(x);
........
image1.Canvas.CopyRect(Rect(0, 0, floor(x), jpg.Height),
Bitmap.Canvas,
Bounds(cw, 0, floor(x), jpg.Height));
криво....
← →
Lazarius (2005-11-16 18:08) [8]image1.Canvas.Height := jpg.Height;
image1.Canvas.Width := floor(x);
вот этого делфа не воспринимает, нет у image1.canvas свойств height и width
← →
Lazarius (2005-11-17 17:39) [9]Вот так вот режет более менее
Jpg.LoadFromFile(s);
x := jpg.Height * 1.5;
nw := jpg.Height - floor(x);
image1.picture.bitmap.Height := jpg.Height;
image1.picture.bitmap.Width := floor(x);
bitmap.Height := jpg.Height;
bitmap.Width := jpg.Width;
bitmap.Assign(jpg);
cw := (bitmap.Width mod 2);
image1.Picture.Bitmap.Canvas.CopyRect(Rect(floor(nw/4), 0, floor(x), jpg.Height),
Bitmap.Canvas,
Bounds(0, 0, floor(x), jpg.Height));
Но отрезает только слева, а надо чтобы слева отрезал в половину меньше и справа, столько же.
← →
Alaman (2005-11-19 13:27) [10]Попробуй перед строчкой:
bitmap.Assign(jpg);
поставить
jpg.DEEBNeeded
← →
Separator © (2005-11-19 13:41) [11]посмотри:
http://Sergey-Vilgelm.narod.ru/source/access.rar [560Кб]
там есть методы работы с картинками, правда в основном изменение размера (увелисение, уменьшение) различными методами, но может и поможет
GraphicConvert.dpr - dll на KOL сделана, там же вложил библиотеки KOL которые использовал
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c