JPG转TIF的问题(200)

  • 主题发起人 主题发起人 liuying1129
  • 开始时间 开始时间
L

liuying1129

Unregistered / Unconfirmed
GUEST, unregistred user!
代码如下,但转出来的TIF文件超大,查看有关的资料,应该转换为黑白就可以了(我的实际需求也是如此),但不知代码中哪里控制颜色?请大侠指点!procedure TfrmMain.BitBtn1Click(Sender: TObject);var Parameters: TEncoderParameters; Value: TEncoderValue; Img, tmp: TGpImage; I: Integer; Clsid: TClsid; sl: tstrings; TifName:string;begin sl:=tstringlist.Create; for i:=0 to ShellListView1.Items.Count-1 do begin if (ShellListView1.Items.Selected)and(LowerCase(ExtractFileExt(ShellListView1.Folders.PathName))='.jpg') then sl.Add(ShellListView1.Folders.PathName); end; if sl.Count=0 then begin showmessage('请选择要转换的jpg文件!'); sl.Free; exit; end; // 下面设置自定义的编码参数,这里为1个参数 Parameters.Count := 1; // 设置参数唯一标志的GUID,这里为保存标记 Parameters.Parameter[0].Guid := EncoderSaveFlag; Parameters.Parameter[0].NumberOfValues := 1; Parameters.Parameter[0].ValueType := EncoderParameterValueTypeLong; // 设置参数的值。这里只把Value地址赋给了参数值,Value在后面具体赋值 Parameters.Parameter[0].Value := @Value; TifName:=ChangeFileExt(sl[0],'.tif'); // 打开第一个图像,这里的图像是前面代码分解后保存的jpg文件 Img := TGpImage.Create(sl[0]); try // 获取图像格式tiff编码器的ClsID GetEncoderClsid('image/tiff', Clsid); // 在保存第一帧图像时,编码参数值设置为多帧 Value := EncoderValueMultiFrame; // 保存第一帧图像 Img.Save(TifName, Clsid, @Parameters); // 保存随后的各帧图像时,编码参数值设置为维度页 Value := EncoderValueFrameDimensionPage; // 依次打开后面的图像,保存到Hb.tif文件,本例图片为24帧 for I := 1 to sl.Count-1 do begin tmp := TGpImage.Create(sl); try Img.SaveAdd(tmp, @Parameters); finally tmp.Free; end; end; finally Img.Free; sl.Free; end; showmessage('转换完成!');end;
 
你把原始图片先做成黑白的,应该可以吧 ,
 
Function ImageRemoveColor(BMP : TBitmap) : integer;var i , j : integer; P : PChar; D : WORD;begin BMP.PixelFormat := pf24bit; for i:=0 to BMP.Height-1 do begin P := BMP.ScanLine; for j:=0 to BMP.Width-1 do begin D := (PByte(P+0)^ + PByte(P+1)^ + PByte(P+2)^) DIV 3; PByte(P+0)^ := D; PByte(P+1)^ := D; PByte(P+2)^ := D; P := P + 3; end; end; Result := NO_ERROR;end;彩色转黑白
 
ImageEn控件可处理。
 
转黑白可以小~但是为了效果~建议采集G4的 压缩方式~查查相关资料 ~!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部