|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Проблемы с Stretch у компонента Image
Всем добрый день
- столкнулся с такой проблемой не понимаю почему так происходит и как это исправить Значит так - на форме стоит компонент 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'); Нет ничего не возможного. Вопрос только во времени... |