![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Всем добрый день
- столкнулся с такой проблемой не понимаю почему так происходит и как это исправить Значит так - на форме стоит компонент Image когда в него из буфера ставишь картинку и свойство Stretch делаешь активным картинка получается безобразным ![]() Нашел в сети другой компонент Image32 у которого все ок с свойством Stretch но у него нашлась проблема когда мне понадобился изменение размера файла в зависимости от Image.width Image.height Код:
bmp: TBitmap;
jpeg: TJPEGImage;
begin
image:= TJPEGImage.Create;
bmp:= TBitmap.Create;
jpeg:= TJPEGImage.Create;
BMP.Width:= Image321.Width;
BMP.Height:=Image321.Height;
with bmp.Canvas do
StretchDraw(ClipRect, ТGraphic); //Вот тут проблема так
jpeg.Assign(bmp); //как у компонента нету
jpeg.CompressionQuality:=80; //класса TGraphic
jpeg.Compress;
jpeg.SaveToFile('D:\111.jpg');Код:
StretchDraw(ClipRect, image1.picture.graphic); Посоветуйте что нибудь |
|
#2
|
|||
|
|||
|
TBitmap - наследник TGraphic, поэтому
10 StretchDraw(ClipRect, bmp); |
|
#3
|
||||
|
||||
|
Цитата:
Не получится - результат просто белая картинка...так как bmp пустой |
|
#4
|
|||
|
|||
|
А где сама картинка находится?
В Image321? А что у него есть вместо TGraphic? |
|
#5
|
||||
|
||||
|
Цитата:
Картинка вставляется в него из буфера Код:
Image321.Bitmap.Assign(Clipboard); потом нужно эту картинку сохранить в размерах Image321 (высота картинки высота компонента - ширина картинки в ширине компонента) Цитата:
|
|
#6
|
||||
|
||||
|
Вот решение - насколько это глупо не звучало все равно скажу
- для решения достаточно было взглянуть в исходный код библиотеки Код:
var
bmp32: TBitmap32;
jpeg: TJPEGImage;
bmp : TBitmap;
begin
bmp32:= TBitmap32.Create;
bmp32.Assign(image321.Bitmap);
jpeg:=TJPEGImage.Create;
BMP32.Width:=IMAGE321.Width;
BMP32.Height:=IMAGE321.Height;
image321.Bitmap.DrawTo(bmp32, bmp32.BoundsRect);
bmp := TBitmap.Create;
bmp.Assign(bmp32);
bmp.PixelFormat:= pf24bit;
jpeg.Assign(bmp);
jpeg.CompressionQuality:=50;
jpeg.Compress;
jpeg.SaveToFile('D:\a1.jpg'); |