Вниз
Скачать: CL | DM;

Обработка изображения   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.031 c
10-1116485364
garra
2005-05-19 10:49
2006.04.16
Com-клиент под Delphi 7


3-1140344210
Валера
2006-02-19 13:16
2006.04.16
Вставка картинки


2-1143644852
Цукор5
2006-03-29 19:07
2006.04.16
передача параметра


2-1143489174
EHOT
2006-03-27 23:52
2006.04.16
Media File


4-1138348951
maxim161
2006-01-27 11:02
2006.04.16
Сервис и форма




   Наверх