Re[2]: проблемы печати TChart
От: Danchik Украина  
Дата: 12.09.05 16:13
Оценка: 6 (1)
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, woland255, Вы писали:


А>На всё не отвечу, расскажу как делаю сам. Пользую FastReport. Там есть компонент для печати графиков, исходники доступны. Весь смысл в создание EMF/WMF образа с поcледующей отрисовкой на канве принтера. То есть не сложнее вставить картинку в этот самый отчет. Функция Tchart для создания WMF -> TeeCreateMetafile.


А>Насчёт монохромности. Это беда. В самом TChart есть свойство для этих целей но лучше не пользовать. Руками в рантайме сохраняю все цвета, от легенд, серий и тд перевожу в b/w, после забора рисунка для печати восстанавливаю исходные.


Да, кстати, как сделать цвет чернобелым (Photoshop algorithm, уйму времени убил пока нашел...):
function Clamp (X: Double): Byte;
begin
  if X < 0 then
    Result := 0
  else
    if X + 0.1 >= 255 then
      Result := 255
  else
    Result := Trunc (X);
end;

function GrayScaleColor(Color: TColor): TColor;
const
  cntGamma = 2.243;
var
  aRGB       : Integer;
  aRGBQuad   : TRGBQuad absolute aRGB;
  aValue     : Extended;
  aComponent : Byte;
begin
  aRGB := ColorToRGB(Color);

  with aRGBQuad do
    aValue :=
      0.213  * Power (rgbRed, cntGamma) +
      0.715  * Power (rgbGreen, cntGamma) +
      0.0724 * Power (rgbBlue, cntGamma);

  aValue := Power (aValue, 1 / cntGamma);

  aComponent := Clamp (aValue);

  Result := RGB (aComponent, aComponent, aComponent);
end;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.