Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Dicom VCL 3.8 - получние Bitmap


Автор: Tsukasa 26.11.2009, 02:51
Требуется помощь знающих людей.

на текущий момент пишу демо проект с использование DicomVCL для построения пред просмотра изображений в ListView требуется получить TBitmap.
Bitmap у dicom взять не получается т.к. он изменён, но имеется возможность сохранить в TStream
и это единственная на текущий момент мысль.
о5 же при попытке сохранить в TStream поучаю по башке граблями, ес точнее Abstract Error

вот примерный используемый код

Код

var
  i,j,x: integer;
  img: TDicomView;
  BMP: TBitmap;
  stream: TStream;
begin
  img:= TDicomView.Create(nil);
  img.DicomDatasets:= TDicomDatasets.Create(nil);
  img.DicomDatasets.Clear;
  bmp:= TBitmap.Create;
  stream:= TStream.Create;
//---------------------------------
    img.DicomDatasets.LoadFromFile(main.masListPrv.data[j].elem[i].patch,false);
    img.AttributesIndex:=img.DicomDatasets.Count-1;

    img.Bitmap.SaveToStream(stream); // error
    bmp.LoadFromStream(stream);

    main.imgLargePrv.Add(bmp, nil);
    main.masListPrv.data[j].elem[i].img:= main.imgLargePrv.Count-1;

  img.DicomDatasets.Free;
  img.Free;




также имеется обработка исключений и т.д. но сюда выложил только касающийся дела код.
с типом TStream работаю впервые к сожалению поэтому могу неправильно написать и т.д. 
так-же вероятно я вообще не в ту сторону смотрю.
Просьба помочь, кодом или советом.  smile 

Автор: Alexeis 26.11.2009, 10:10
TStream это абстрактный класс предок всех потоков. Если нужно загнать в память, то следует использовать TMemoryStream, если в файл TFileStream.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)