Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Вниз

Ещё один вопрос про ScanLine   Найти похожие ветки 

 
Maks Realov   (2004-06-25 11:45) [0]

Ведь функция ScanLine применима только к объекту класса TBitmap, который должен содержать какую-то предварительно в него загруженную картинку. Проблема в том, что мне надо в run-time масштабировать контрол, на котором я отрисовываю свою графику. Как быть? Размеры-то у картинки, загруженной в TBitmap фиксированные.
Спасибо.


 
Maks Realov   (2004-06-25 11:46) [1]

...и туда же: как при отрисовке использовать 32-х битную палитру?


 
TUser ©   (2004-06-25 12:12) [2]

TImage.Stretch


 
Maks Realov   (2004-06-25 12:19) [3]

так при Stretch разрешение картики не меняется. Она просто растягивается. А мне надо, что бы при отрисовки графика, к примеру, увеличить одну из осей, что бы была возможность рассматривать больший интервал.


 
Григорьев Антон ©   (2004-06-25 12:25) [4]

Почему фиксированные-то? У TBitmap есть свойства Width, Height - меняйте себе на здоровье. А ещё есть свойство PixelFormat, которое показывает, сколько бит на пиксел приходится.


 
TUser ©   (2004-06-25 12:28) [5]

Т.е. ты хочешь растянуть картинку по горизонтали, а по вертикали ничего не делать? Тогда, надо перерисовывать саму картинку.


 
MBo ©   (2004-06-25 12:29) [6]

1. Непонятно, причем тут Scanline
2. Если нужно без растяжки выводить на контрол кусок битмапа, используй TCanvas.CopyRect, Draw или BitBlt, а для растяжения-сжатия - TCanvas.StretchDraw или StretchBlt
3. 32-х битных палитр не существует. возможно, имеется в виду TBitmap.PixelFormat=pf32Bit?


 
Maks Realov   (2004-06-25 12:33) [7]

Спасибо всем. Думаю ваши советы меня вылечат!


 
Maks Realov   (2004-06-25 13:04) [8]

Получается так, что если я не гружу картинку в BitMap, а делаю просто:

 Brush.Color := clBlack;
 Brush.Style := bsSolid
 Image1.Picture.Bitmap.Canvas.FillRect(Image1.BoundsRect);

То вызыв
Image1.Picture.BitMap.ScanLine[i];
выдаёт ту же ошибку. Что-то я не понимаю.
Грубо говоря - как мне в run-time создать картинку нужных размеров и загрузить её в BitMap моего Image?


 
Григорьев Антон ©   (2004-06-25 13:34) [9]

Для начала забудьте про TImage, создайте TBitmap, сделайте с ним всё, что хотите, а потом TImage.Picture.Bitmap:=... - так будет правильнее.


 
icWasya ©   (2004-06-25 14:34) [10]

просто Борманы немножко перемудрили -
когда первый раз обращаются к TImage.Canvas и Picture = Nil, то создаётся TBitmap размером c Image, и все всегда думают, что напрямую обращаются к Image



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.288 c
1-1087808217
leonidus
2004-06-21 12:56
2004.07.11
Проблема с TZipMaster


1-1088579909
Aleksandr
2004-06-30 11:18
2004.07.11
Из Excel в Delphi


9-1079372701
Servelat
2004-03-15 20:45
2004.07.11
Как выключить screensaver


1-1088153673
lEFT men
2004-06-25 12:54
2004.07.11
Координаты курсора в тексте


1-1088339839
Дилетант
2004-06-27 16:37
2004.07.11
I/O error 32





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский