⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vpdftiff.pas

📁 生成PDF文档的控件
💻 PAS
📖 第 1 页 / 共 4 页
字号:
    end;
    Inc(ma);
    Inc(mb);
    Inc(n);
  end;
  Result := 0;
end;

{$IFNDEF VOLDVERSION}
function strcmp(a: Pointer; b: Pointer): Integer; cdecl;
var
  ma, mb: PByte;
begin
  ma := a;
  mb := b;
  while True do
  begin
    if ma^ <> mb^ then
    begin
      if ma^ < mb^ then
        Result := -1
      else
        Result := 1;
      exit;
    end;
    if ma^ = 0 then
    begin
      Result := 0;
      exit;
    end;
    Inc(ma);
    Inc(mb);
  end;
  Result := 0;
end;
{$ENDIF}

function strlen(s: Pointer): Cardinal; cdecl;
var
  m: PByte;
begin
  Result := 0;
  m := s;
  while m^ <> 0 do
  begin
    Inc(Result);
    Inc(m);
  end;
end;

procedure _TIFFfree(p: Pointer); cdecl;
var
  m: TMemoryManager;
begin
  GetMemoryManager(m);
  m.FreeMem(p);
end;

procedure _TIFFmemcpy(d: Pointer; s: Pointer; c: Longint); cdecl;
begin
  CopyMemory(d, s, c);
end;

function pow(x: Double; y: Double): Double; cdecl;
begin
  Result := Power(x, y);
end;

function floor(x: Double): Double; cdecl;
begin
  Result := Trunc(x);
end;

function _TIFFmalloc(s: Longint): Pointer; cdecl;
var
  m: TMemoryManager;
begin
  GetMemoryManager(m);
  Result := m.GetMem(s);
end;

procedure TIFFReadRGBAImageSwapRB(Width, Height: Cardinal; Memory: Pointer);
type
  PCarPoints = ^Cardinal;
var
  m: PCarPoints;
  n: Cardinal;
  o: Cardinal;
begin
  m := Memory;
  for n := 0 to Width * Height - 1 do
  begin
    o := m^;
    m^ := (o and $FF00FF00) or
      ((o and $00FF0000) shr 16) or
      ((o and $000000FF) shl 16);
    Inc(m);
  end;
end;

function LibTiffDelphiVersion: AnsiString;
var
  m: AnsiString;
  na, nb: Integer;
begin
  Result := '';
  m := TIFFGetVersion;
  na := 1;
  while True do
  begin
    nb := na;
    while nb <= Length(m) do
    begin
      if m[nb] = #10 then break;
      Inc(nb);
    end;
    Result := Result + Copy(m, na, nb - na);
    if nb > Length(m) then break;
    Result := Result + #13#10;
    na := nb + 1;
  end;
  Result := Result;
end;

procedure LibTiffDelphiWarningThrp(a: Pointer; b: Pointer; c: Pointer); cdecl;
var
  m: Integer;
  n: AnsiString;
begin
  if @FLibTiffDelphiWarningHandler <> nil then
  begin
    m := sprintfsec(nil, b, @c);
    SetLength(n, m);
    sprintfsec(Pointer(n), b, @c);
    FLibTiffDelphiWarningHandler(PAnsiChar(a), n);
  end;
end;

procedure LibTiffDelphiErrorThrp(a: Pointer; b: Pointer; c: Pointer); cdecl;
var
  m: Integer;
  n: AnsiString;
begin
  if @FLibTiffDelphiErrorHandler <> nil then
  begin
    m := sprintfsec(nil, b, @c);
    SetLength(n, m);
    sprintfsec(Pointer(n), b, @c);
    FLibTiffDelphiErrorHandler(PAnsiChar(a), n);
  end;
end;

function LibTiffDelphiGetWarningHandler: LibTiffDelphiErrorHandler;
begin
  Result := FLibTiffDelphiWarningHandler;
end;

function LibTiffDelphiSetWarningHandler(Handler: LibTiffDelphiErrorHandler): LibTiffDelphiErrorHandler;
begin
  Result := FLibTiffDelphiWarningHandler;
  FLibTiffDelphiWarningHandler := Handler;
end;

function LibTiffDelphiGetErrorHandler: LibTiffDelphiErrorHandler;
begin
  Result := FLibTiffDelphiErrorHandler;
end;

function LibTiffDelphiSetErrorHandler(Handler: LibTiffDelphiErrorHandler): LibTiffDelphiErrorHandler;
begin
  Result := FLibTiffDelphiErrorHandler;
  FLibTiffDelphiErrorHandler := Handler;
end;

procedure _TIFFSwab16BitData(tif: Pointer; buf: Pointer; cc: Integer); cdecl; external;

procedure _TIFFSwab32BitData(tif: Pointer; buf: Pointer; cc: Integer); cdecl; external;

procedure _TIFFSwab64BitData(tif: Pointer; buf: Pointer; cc: Integer); cdecl; external;

procedure _TIFFNoPostDecode(tif: Pointer; buf: Pointer; cc: Integer); cdecl; external;

function TIFFReadTile(tif: Pointer; buf: Pointer; x: Cardinal; y: Cardinal; z: Cardinal; s: Word): Integer; cdecl; external;

{$L ..\..\Objs\Tiff\tif_read.obj}

function _TIFFSampleToTagType(tif: Pointer): Integer; cdecl; external;

procedure _TIFFSetupFieldInfo(tif: Pointer); cdecl; external;

function _TIFFCreateAnonFieldInfo(tif: Pointer; tag: Cardinal; field_type: Integer): Pointer; cdecl; external;
{$L ..\..\Objs\Tiff\tif_dirinfo.obj}
{$L ..\..\Objs\Tiff\tif_dirwrite.obj}
{$L ..\..\Objs\Tiff\tif_flush.obj}

function TIFFFlushData1(tif: Pointer): Integer; cdecl; external;

function TIFFSetupStrips(tif: Pointer): Integer; cdecl; external;
{$L ..\..\Objs\Tiff\tif_write.obj}

function TIFFInitDumpMode(tif: Pointer; scheme: Integer): Integer; cdecl; external;
{$L ..\..\Objs\Tiff\tif_dumpmode.obj}

function TIFFSetCompressionScheme(tif: Pointer; scheme: Integer): Integer; cdecl; external;

procedure _TIFFSetDefaultCompressionState(tif: Pointer); cdecl; external;
{$L ..\..\Objs\Tiff\tif_compress.obj}
{$L ..\..\Objs\Tiff\tif_dirread.obj}

procedure TIFFFreeDirectory(tif: Pointer); cdecl; external;

function TIFFDefaultDirectory(tif: Pointer): Integer; cdecl; external;

function TIFFReassignTagToIgnore(task: Integer; TIFFtagID: Integer): Integer; cdecl; external;

procedure _TIFFsetString(cpp: Pointer; cp: Pointer); cdecl; external;

procedure _TIFFsetByteArray(vpp: Pointer; vp: Pointer; n: Integer); cdecl; external;
{$L ..\..\Objs\Tiff\tif_dir.obj}

function TIFFVGetFieldDefaulted(tif: Pointer; tag: Cardinal; ap: Pointer): Integer; cdecl; external;
{$L ..\..\Objs\Tiff\tif_aux.obj}

procedure TIFFCIELabToXYZ(cielab: Pointer; l: Cardinal; a: Integer; b: Integer; X: Pointer; Y: Pointer; Z: Pointer); cdecl; external;

procedure TIFFXYZToRGB(cielab: Pointer; X: Single; Y: Single; Z: Single; r: Pointer; g: Pointer; b: Pointer); cdecl; external;

procedure TIFFYCbCrtoRGB(ycbcr: Pointer; Y: Cardinal; Cb: Integer; Cr: Integer; r: Pointer; g: Pointer; b: Pointer); cdecl; external;

function TIFFYCbCrToRGBInit(ycbcr: Pointer; luma: Pointer; refBlackWhite: Pointer): Integer; cdecl; external;

function TIFFCIELabToRGBInit(cielab: Pointer; display: Pointer; refWhite: Pointer): Integer; cdecl; external;
{$L ..\..\Objs\Tiff\tif_color.obj}
{$L ..\..\Objs\Tiff\tif_close.obj}
{$L ..\..\Objs\Tiff\tif_extension.obj}

function _TIFFgetMode(mode: PAnsiChar; module: PAnsiChar): Integer; cdecl; external;
{$L ..\..\Objs\Tiff\tif_open.obj}
{$L ..\..\Objs\Tiff\tif_getimage.obj}

function TIFFPredictorInit(tif: PTIFF): Integer; cdecl; external;
{$L ..\..\Objs\Tiff\tif_predict.obj}
{$L ..\..\Objs\Tiff\tif_print.obj}
{$L ..\..\Objs\Tiff\tif_error.obj}

function _TIFFDefaultStripSize(tif: Pointer; s: Cardinal): Cardinal; cdecl; external;
{$L ..\..\Objs\Tiff\tif_strip.obj}
{$L ..\..\Objs\Tiff\tif_swab.obj}

function TIFFCheckTile(tif: Pointer; x: Cardinal; y: Cardinal; z: Cardinal; s: Word): Integer; cdecl; external;

procedure _TIFFDefaultTileSize(tif: Pointer; tw: Pointer; th: Pointer); cdecl; external;
{$L ..\..\Objs\Tiff\tif_tile.obj}
{$L ..\..\Objs\Tiff\tif_warning.obj}

function TIFFInitCCITTRLE(tif: PTIFF; scheme: Integer): Integer; cdecl; external;

function TIFFInitCCITTRLEW(tif: PTIFF; scheme: Integer): Integer; cdecl; external;

function TIFFInitCCITTFax3(tif: PTIFF; scheme: Integer): Integer; cdecl; external;

function TIFFInitCCITTFax4(tif: PTIFF; scheme: Integer): Integer; cdecl; external;
{$L ..\..\Objs\Tiff\tif_fax3.obj}
{$L ..\..\Objs\Tiff\tif_fax3sm.obj}

procedure TIFFjpeg_error_exit_raise; cdecl;
begin
  raise Exception.Create('TIFFjpeg_error_exit');
end;

function TIFFcallvjpeg_jpeg_CreateCompress(cinfo: Pointer; version: Integer; structsize: Cardinal): Integer; cdecl;
begin
  try
    jpeg_CreateCompress(cinfo, version, structsize);
    Result := 1;
  except
    Result := 0;
  end;
end;

function TIFFcallvjpeg_jpeg_CreateDecompress(cinfo: Pointer; version: Integer; structsize: Cardinal): Integer; cdecl;
begin
  try
    jpeg_CreateDecompress(cinfo, version, structsize);
    Result := 1;
  except
    Result := 0;
  end;
end;

function TIFFcallvjpeg_jpeg_set_defaults(cinfo: Pointer): Integer; cdecl;
begin
  try
    jpeg_set_defaults(cinfo);
    Result := 1;
  except
    Result := 0;
  end;
end;

function TIFFcallvjpeg_jpeg_set_colorspace(cinfo: Pointer; colorspace: Integer): Integer; cdecl;
begin
  try
    jpeg_set_colorspace(cinfo, colorspace);
    Result := 1;
  except
    Result := 0;
  end;
end;

function TIFFcallvjpeg_jpeg_set_quality(cinfo: Pointer; quality: Integer; force_baseline: Byte): Integer; cdecl;
begin
  try
    jpeg_set_quality(cinfo, quality, force_baseline);
    Result := 1;
  except
    Result := 0;
  end;
end;

function TIFFcallvjpeg_jpeg_suppress_tables(cinfo: PRJpegCompressStruct; suppress: Byte): Integer; cdecl;
begin
  try
    jpeg_suppress_tables(cinfo, suppress);
    Result := 1;
  except
    Result := 0;
  end;
end;

function TIFFcallvjpeg_jpeg_start_compress(cinfo: PRJpegCompressStruct; write_all_tables: Byte): Integer; cdecl;
begin
  try
    jpeg_start_compress(cinfo, write_all_tables);
    Result := 1;
  except
    Result := 0;
  end;
end;

function TIFFcalljpeg_jpeg_write_scanlines(errreturn: Integer; cinfo: PRJpegCompressStruct; scanlines: Pointer;
  num_lines: Cardinal): Integer; cdecl;
begin
  try
    Result := jpeg_write_scanlines(cinfo, scanlines, num_lines);
  except
    Result := errreturn;
  end;
end;

function TIFFcalljpeg_jpeg_write_raw_data(errreturn: Integer; cinfo: PRJpegCompressStruct; data: Pointer; num_lines:
  Cardinal): Integer; cdecl;
begin
  try
    Result := jpeg_write_raw_data(cinfo, data, num_lines);
  except
    Result := errreturn;
  end;
end;

function TIFFcallvjpeg_jpeg_finish_compress(cinfo: PRJpegCompressStruct): Integer; cdecl;
begin
  try
    jpeg_finish_compress(cinfo);
    Result := 1;
  except
    Result := 0;
  end;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -