Как увеличить максимальный объем TImage больше 64Мб

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

familytree
Сообщения: 8
Зарегистрирован: 12 апр 2007, 15:46

Столкнулся с тем, что максимальный TImage 64Мб или
TImage.Height * TImage.Width не более 21475000 пикселей.
Надо рисовать и просматривать на канве рисунки больше чем 64 Мб.
Как обойти или изменить столь досадный факт?
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

MapViewOfFile() + StretchDIBitsToDevice()
2B OR NOT(2B) = FF
Аватара пользователя
Nikoshka
Сообщения: 120
Зарегистрирован: 15 май 2006, 05:24

familytree,
Можно использовать Bitmap, а на Image выводить все как на "камеру".
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Что-то я не понял?

Код: Выделить всё

procedure TForm1.BitBtn1Click(Sender: TObject);
var b : TBitmap;
begin
b := TBitmap.Create;
b.Width := 8192;
b.Height := 8192;
b.PixelFormat := pf24bit;
Image1.Picture.Bitmap := b;
end;
Выделено 192М памяти, кол-во пикселей - 64М. Все рисуется... никаких проблем...
It's a long way to the top if you wanna rock'n'roll
familytree
Сообщения: 8
Зарегистрирован: 12 апр 2007, 15:46

Спасибо, все идеи хороши!
Поэксперементирую..
familytree
Сообщения: 8
Зарегистрирован: 12 апр 2007, 15:46

Мда.. функция MapViewOfFile() ОК! но примеров как ею пользоваться в инете не нашел.. А жаль..
familytree
Сообщения: 8
Зарегистрирован: 12 апр 2007, 15:46

somewhere писал(а):Что-то я не понял?

Код: Выделить всё

procedure TForm1.BitBtn1Click(Sender: TObject);
var b : TBitmap;
begin
b := TBitmap.Create;
b.Width := 8192;
b.Height := 8192;
b.PixelFormat := pf24bit;
Image1.Picture.Bitmap := b;
end;
Выделено 192М памяти, кол-во пикселей - 64М. Все рисуется... никаких проблем...
Не тут то было. Delpi 6 пишет "Недостаточно памяти для обработки команды"
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Может у тебя оперативки мало, либо она вся используется?
It's a long way to the top if you wanna rock'n'roll
familytree
Сообщения: 8
Зарегистрирован: 12 апр 2007, 15:46

Да оперативки та немного 196 Мб, но я думаю может причина в Windows 2000.
Вспоминаю когда стояла XP вроде не было такой проблеммы..
Что скажешь?
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

familytree писал(а):Мда.. функция MapViewOfFile() ОК! но примеров как ею пользоваться в инете не нашел.. А жаль..
http://msdn2.microsoft.com/en-us/library/aa914748.aspx
http://msdn2.microsoft.com/en-us/library/aa914405.aspx
2B OR NOT(2B) = FF
Ответить