‘壹’ 如何用c语言读取tif图片每个点的RGB值并进行判断
这个用matlab比较容易,c的没试过。
‘贰’ 设计程序读取格式为dxf文件的简单图形
你可以考虑用Open DWG 的Toolkit操作!我上次帮人家的做的是从DWG文件里提取数据,呵呵,和你的是相反的!有兴趣交流下,QQ:1512287
‘叁’ C语言 BMP文件
BMP格式文件是位图,里面保存的是像素点的红\绿\蓝三原色的亮度,并没有保存什么特定的图形,所以BMP文件不能直接读取出特定图形的个数.
当然通过图形识别技术,也是可以识别出直线,圆等几何信息.
文字识别技术可以识别出其中包含的文字信息
脸部识别技术可以识别出人脸部的特征信息.
这些算法都比较复杂.都是不能直接识别的.
当然也有能直接读出特定图形的文件格式,这些格式统称矢量图,比如.dwg(AutoCAD), .dxf, .wmf等.
其文件内容就是记录图片的什么地方有什么图形.
‘肆’ C语言读dxf文件的程序
http://www.diybl.com/course/3_program/c++/cppsl/200855/113046.html
‘伍’ 一些文件格式
不知你所指的是不是“.txt” “.doc”?
.txt是文本文档格式,是记事本的格式
.doc是word文档格式,用Microsoft Word软件可打开
%A%、%B%:DOS版的WPS临时文件;
3DS:矢量格式,为3D Studio的动画原始图形文件,含有纹理和光照信息;
ACE:ACE压缩文件格式;
AI: 矢量格式,是久负盛名的绘图软件Adobe Illustrator文件格式;
AIF:Apple计算机的音频文件格式;
ANI:WIN95中动画鼠标指针文件;
ARJ:ARJ软件压缩的文件;
ASC:代码文件;
ASF:微软的流媒体格式;
ASX:ASF文件的索引格式;
ASM:汇编程序文件;
ASP:ASP即Active Server Page的缩写。它是一种包含了使用VB Script或Jscript脚本程序代码的网页。
AVI:视频与音频交错文件;最新的MPEG4也采用这种后缀;
BAK:备份文件;
BAS:BASIC中的源程序文件;
BAT:DOS下的批处理文件。Autoexec.bat为自动批处理文件,它是特殊的批处理文件;
BIN:光盘镜像文件;有时是一些软件的数据文件;
BMP:是Windows所使用的基本位图格式,是小画笔就能轻松创建的文件;
BZ2:压缩文件格式;
C :C语言中的源程序文件;
CAB:微软的压缩文件格式,压缩率很高;
CDR:矢量格式,是Corel Draw标准文件格式;
CDT:Corel Draw中的模板文件;
CED:CCED文件格式;
CEL:3DS中的贴图文件;
CGM:是压缩的矢量图形文件,Winword可以打开;
CHK:检查磁盘命令CHKDSK发现的目录或文件分配表中的错误,校正系统后的文件;
CMX:Corel Draw展示交换文件;
CMV:是Corel Move平面动画软件中的动画演示文件;
COB:COBOL语言源程序文件;
COM:可执行的二进制代码系统程序文件,特点非常 短小精悍 ,长度有限制;
CPT:位图和矢量图都有,是Corel Photo-Paint的文件格式;
CRD:Windows中的卡版盒文件;
DAT:视频影像文件,是Video CD(VCD)或Karaoke CD(卡拉OK CD)其于MPEG压缩方法的一种,注意它同数据文件同名;有时是数据文件。
DB: Paradox数据库格式。
DBT:FOXBASE中的数据库文件的辅助文件;
DBC:为FOXPRO中的数据库名;
DBF:XBASE数据库文件;
DDI:早期映象文件,由DiskDUP Imgdrive Img.exe展开;
DLL:Windows下应用程序中的动态连结库文件;
DOC:文档文件,由Microsoft Word生成,也有一部分是由Word Perfect生成;
DRW:矢量格式,Micrografx Designer使用的绘图文件格式;
DRV:驱动程序文件;
DXF:矢量格式,是AutoCAD的绘图交换文件;
EPS:是Adobe System公司的PostScript页面描述语言的产物,是矢量图形文件;
EXE:可执行的程序文件,与COM内部结构不相同,最突出是长度没有限制;
FLI:动画文件,是由AutoDesk公司开发的,只支持320*200*256色模式,它是FLC的老祖宗;
FIC:动画文件,是AutoDesk公司开发的;
FMT:FOXBASE中的屏幕格式文件;
FNT:为Bezier(贝氏)类型字体的文件;
FOR:FORTRAN语言源程序文件;
FOT:是True Type字体文件的资源文件,正因为FOT文件中含有指向TTF的指针,所以我们的字体文件(TTF)才可以放在任何目录下面;
FOX:FOXBASE伪编译程序文件,比PRG短小运行速度快;
FRM:FOXBASE中的报表格式文件;
GIF:GIF在网页中占有独一无二的地位,美中不足是颜色最多为(256色)8位,与其它图象文件相比,GIF高人一招,它是唯一可以存储动画的图像格式;
GRP:Windows程序组文件;
HGL:是HP公司创建的一种矢量图形文件;
HLP:帮助文件;
HTM:超文本文件;
HTML:超文本文件;
ICO:图标。
IDX:FOXBASE中的索引文件;
IMD:UCDOS中输入法的编码字典文件;
IMP:IMP压缩文件格式;
INI:配置文件,不要以为这个文件只有Windows程序需要,DOS下程序也有不少需要它,如3DS与AutoCAD;
INF:安装配置文件,这在WIN95下使用较多;
IMG:有时它是一个图象文件,但更多的时候,它是软盘映象文件,常用HD-COPY IMG UNIMG、WINIMAGE等软件进行解压。
ISO:标准光盘镜像文件;
JAR:JAR压缩文件格式;
JPG:JPG原是Apple Mac机器上使用的一种图像格式,现在在PC机上大行其道,其压缩比可以调节,而且失真又很小。
LBL:FOXBASE中的标签文件;
LIB:程序库文件;
LOG:日记文件;
LRC:MP3歌词;
LZH:压缩文件格式;
M3U:文本文件,存放mp3、rm等多媒体文件列表;
MAK:C语言中的工程文件;
MEM:FOXBASE中的内存变量文件;
MID:数字音频文件(乐器数字接口);
MLI:3DS中的材质库;
MMM:动画文件,是MacroMind公司着名多媒体写作软件Director生成的;
MPG:视频文件,PC机上的全屏幕活动视频的标准文件;
MOD、ST3、XT、S3M、FAR、669:该格式的文件里存放乐谱和乐曲使用的各种音色样本,。现在已经逐渐淘汰,目前只有MOD迷及一些游戏程序中尚在使用。
MOV:QUICKTIME的视频影像格式,同样采用有损压缩方法,在Windows下必须安装QuickTime程序才能播放;
MP2、音乐文件;
MP3:音频格式,MPEG-1 Audio Layer-3 I格式;
NO:一般是文本文件,如:Serial.no,通常还有一种格式为sn.txt,它说是你安装软件的CD-KEY、产品序列号、注册登记号;
OBJ:目标文件,源程序编译输出的目标代码;
OLD:备份文件,一般是一些程序对系统配置修改后将原文件复制一份存储为该文件格式;
PAS:PASCAL语言源程序文件;
PCD:是PhotoCD专用存储格式,由于其文件特别大,不得不存在CD-ROM上,但应用特别广;
PCM:模拟音频信号经模数转换(A/D变换)直接形成的二进制序列;
PCS:为PowerPoint中的图象文件,为矢量图形文件;
PCX:是微机上使用最广泛的图像格式之一,能表现真彩图像;
PDF:Aodbe acrobat的电子图书格式;
PDG:超星电子图书格式;
PDV:UCDOS中的自由表格UCTAB生成的表格文件,它生成的文件可以被WPS调用,也挺方便的;
PFB:Adobe TYPE1字体Post Script字模文件,必须使用Adobe Type Manager管理安装使用,它的最大优点是放大时比TTF字幕可K得多;
PIC:同上,Lotus 1-2-3的图表文件也叫PIC文件;
PIF:Windows中的运行非Windows应用程序建立的一个文件;
PJX:Visual FoxPro下的项目文件与辅助文件PJT结合成项目管理文件;
PNG:Portable Network Graphics可移植的网络图形,一种新兴的图片格式;
PPT、PPS、POT:微软的PowerPoint电子演示文档格式;
PRG:FOXBASE过程程序文件;
PSD:PDD位图文件,是Adobe Photoshop直接生成的图象文件;
PS1:为WPS下扩展字库文件,PS2一般为繁体;
PYR:格式全称Pyramid Images。这种格式可以在一个文件中包含有多种文辨率,存储方便。
RA、RAM、RM:REALPLAY流媒体格式;
RAR:这也是一个压缩文件,传说比ARJ压缩比更高;
REC:Windows中记录器中的宏命令文件;
REG:注册表导出格式。
RIFF:ainter格式。
RMI、CMI、CMF:是mid几个变通格式;
RTF:文本文件格式,Windows wordpad默认文件保存格式;
SCR:Windows屏幕保护程序文件;
SHP:矢量格式,3DS中的造型文件;
SND:声音文件的剪辑文件;
SWA:音频格式,MPEG-1 Audio Layer-3 II格式;
SWF:Flash动画文件格式;
SYS:Windows系统文件;有时是系统配置文件,最典型的如config.sys
TAR:压缩文件格式;
TGA:位图文件,为Targa公司开发的支持8位到32位颜色深度图像文件;
TIF:图形文件,TIF程式图像可以是RGB真彩色的;
TMP:临时文件;
TTF、TTC:True Type字体文件,是一种轮廓字模,是由Apple和Microsoft合作开发的;
TXT:纯文本文件格式;Cookies也采用这种格式;notepad默认保存文件格式。
WAV:Windows所使用的标准数字音频文件,也称波形文件,它能够重现各种单声道或立体声的声音,是最常见的声音文件;
WDL:华康科技DynaDoc的电子文档格式;
WMA:Windows Media Audio,微软的音乐文件格式;
WMF:是特殊文件,是位图和矢量图混血儿;
WMV:微软的流媒体格式;
WPG:矢量/格式,是Word Perfect使用的文件格式;
WPS:文档文件,由着名国产软件WPS生成;
WRI:文档文件,是由Windows中书写器生成的;
UUE:压缩文件格式;
VXD:虚拟设备文件;
VOC:Creative公司波形音频文件格式,也是声霸卡(sound blaster)使用的音频文件格式。
VDA、ICB、VST:与TGA相似,均为Targa公司开发的位图文件;都是使用很广泛的;
XLS、XLA、XLB、XLC、XLD、XLK…:皆为电子表格Excel的格式文件; 其中XLS为工作表格式;
ZIP:当前最流行的压缩文件,WINZIP、WinRAR等压缩软件均支持; WindowsME/XP也已内置支持。
‘陆’ c#读取dxf文件
1、使用FileStream读写文件
文件头:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
读文件核心代码:
byte[] byData = new byte[100];
char[] charData = new char[1000];
try
{
FileStream sFile = new FileStream("文件路径",FileMode.Open);
sFile.Seek(55, SeekOrigin.Begin);
sFile.Read(byData, 0, 100); //第一个参数是被传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符.
}
catch (IOException e)
{
Console.WriteLine("An IO exception has been thrown!");
Console.WriteLine(e.ToString());
Console.ReadLine();
return;
}
Decoder d = Encoding.UTF8.GetDecoder();
d.GetChars(byData, 0, byData.Length, charData, 0);
Console.WriteLine(charData);
Console.ReadLine();
写文件核心代码:
FileStream fs = new FileStream(文件路径,FileMode.Create);
//获得字节数组
byte [] data =new UTF8Encoding().GetBytes(String);
//开始写入
fs.Write(data,0,data.Length);
//清空缓冲区、关闭流
fs.Flush();
fs.Close();
2、使用StreamReader和StreamWriter
文件头:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
StreamReader读取文件:
StreamReader objReader = new StreamReader(文件路径);
string sLine="";
ArrayList LineList = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null&&!sLine.Equals(""))
LineList.Add(sLine);
}
objReader.Close();
return LineList;
StreamWriter写文件:
FileStream fs = new FileStream(文件路径, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
//开始写入
sw.Write(String);
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
===================================================================================
方式一:用FileStream
//实例化一个保存文件对话框
SaveFileDialog sf = new SaveFileDialog();
//设置文件保存类型
sf.Filter = "txt文件|*.txt|所有文件|*.*";
//如果用户没有输入扩展名,自动追加后缀
sf.AddExtension = true;
//设置标题
sf.Title = "写文件";
//如果用户点击了保存按钮
if(sf.ShowDialog()==DialogResult.OK)
{
//实例化一个文件流--->与写入文件相关联
FileStream fs = new FileStream(sf.FileName,FileMode.Create);
//获得字节数组
byte [] data =new UTF8Encoding().GetBytes(this.textBox1.Text);
//开始写入
fs.Write(data,0,data.Length);
//清空缓冲区、关闭流
fs.Flush();
fs.Close();
}
方式二:用StreamWriter
//实例化一个保存文件对话框
SaveFileDialog sf = new SaveFileDialog();
//设置文件保存类型
sf.Filter = "txt文件|*.txt|所有文件|*.*";
//如果用户没有输入扩展名,自动追加后缀
sf.AddExtension = true;
//设置标题
sf.Title = "写文件";
//如果用户点击了保存按钮
if (sf.ShowDialog() == DialogResult.OK)
{
//实例化一个文件流--->与写入文件相关联
FileStream fs = new FileStream(sf.FileName, FileMode.Create);
//实例化一个StreamWriter-->与fs相关联
StreamWriter sw = new StreamWriter(fs);
//开始写入
sw.Write(this.textBox1.Text);
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
}
string FileName = Guid.NewGuid().ToString() + ".txt"; //GUID生成唯一文件名
StringBuilder ckpw = new StringBuilder("\"凭证输出\", \"V800\", \"001\", \"东风随州专用汽车有限公司\"," + "\"F89自由项16\", \"F90审核日期:\"");
if (!FileIO.IsFolderExists(Server.MapPath("pzsc")))
FileIO.CreaterFolder(Server.MapPath(""), "file://pzsc/");
string filePath = Server.MapPath("pzsc") + "\\" + FileName;
System.IO.StreamWriter sw = new System.IO.StreamWriter(filePath, false, Encoding.GetEncoding("GB2312"));//创建的时候需要指定编码格式,默认是UTF-8,中文显示乱码
sw.WriteLine(ckpw.ToString());
sw.Close();
方式三:用BinaryWriter
//实例化一个保存文件对话框
SaveFileDialog sf = new SaveFileDialog();
//设置文件保存类型
sf.Filter = "txt文件|*.txt|所有文件|*.*";
//如果用户没有输入扩展名,自动追加后缀
sf.AddExtension = true;
//设置标题
sf.Title = "写文件";
//如果用户点击了保存按钮
if (sf.ShowDialog() == DialogResult.OK)
{
//实例化一个文件流--->与写入文件相关联
FileStream fs = new FileStream(sf.FileName, FileMode.Create);
//实例化BinaryWriter
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(this.textBox1.Text);
//清空缓冲区
bw.Flush();
//关闭流
bw.Close();
fs.Close();
}
C#缓存流示例------>用缓存流复制文件
C#文件处理操作必须先导入命名空间:using System.IO;
背景:使用VS2005、一个按钮、一个窗体、C#缓存流、把D:\KuGoo\爱得太多.wma复制到D:\并更名为love.wma,即:D:\love.wma
在按钮的Click事件中添加如下代码:
private void button1_Click(object sender, EventArgs e)
{
//创建两个文件流 一个是源文件相关,另一个是要写入的文件
FileStream fs = new FileStream(@"D:\KuGoo\爱得太多.wma",FileMode.Open);
FileStream fs2 = new FileStream(@"D:\love.wma",FileMode.Create);
//创建一个字节数组,作为两者之间的媒介
//好比两个人拿苹果,这个字节数组就好比一个篮子,一个人作死的把苹果送到篮子里面,
//而我就可以作死得拿苹果,通过这个媒介我们互不干扰,
//不需要互相等待【她往篮子里面放了苹果我才可以去拿】,提高了效率
byte[] data = new byte[1024];
//创建两个缓冲流,与两个文件流相关联
BufferedStream bs = new BufferedStream(fs);
BufferedStream bs2= new BufferedStream(fs2);
//fs作死的读,fs2作死的写,直到fs没有字节可读fs2就不写了
//好比,一个人作死的往篮子里面丢苹果,另一个人作死得往篮子里面拿苹果,直到篮子里面没有苹果拿了为止
//即-->那个人没有苹果往篮子里面放了
while(fs.Read(data,0,data.Length)>0)
{
fs2.Write(data,0,data.Length);
fs2.Flush();
}
//关闭流,好比两个人累了,都要休息 呵呵o(∩_∩)o...
fs.Close();
fs2.Close();
}
C#内存流示例----->用内存流来读取图片
C#文件处理操作必须先导入命名空间:using System.IO;
背景:一个窗体、一个pictureBox、一个lable[没有选择图片,lable的text为"图片未选择"],在pictureBox1的Click事件中添加如下代码:
private void pictureBox1_Click(object sender, EventArgs e)
{
//实例化一个打开文件对话框
OpenFileDialog op = new OpenFileDialog();
//设置文件的类型
op.Filter = "JPG图片|*.jpg|GIF图片|*.gif";
//如果用户点击了打开按钮、选择了正确的图片路径则进行如下操作:
if(op.ShowDialog()==DialogResult.OK)
{
//清空文本
this.label1.Text = "";
//实例化一个文件流
FileStream fs = new FileStream(op.FileName, FileMode.Open);
//把文件读取到字节数组
byte[] data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
fs.Close();
//实例化一个内存流--->把从文件流中读取的内容[字节数组]放到内存流中去
MemoryStream ms = new MemoryStream(data);
//设置图片框 pictureBox1中的图片
this.pictureBox1.Image = Image.FromStream(ms);
}
}
‘柒’ 需要一个c语言(turbo c2.0)的大型程序的设计方案
现在好多的人都在用手机。P4看小说,你可以写一个TXT文本方面的软件,比如,有的人嫌下载的太大了,可以写个分割功能,有的分章节下的,可以写个合并功能的,等等其它。
‘捌’ C语言与AutoCAD的连接问题
AutoCAD 里选 File->Export 再选 dxf 文件格式。
dxf 是ASCII 可读文件。
C语言 打开 dxf 文件,按行找关键字,再读数值。
‘玖’ 如何用Opengl读取dxf文件和JPEG图像
dxf是AutoCAD ® DXFTM (Drawing eXchange Format) 向量图型文件。
JPEG 是 JPEG 工作组的 图像 文件 格式。
Opengl 可以读取 SGI 图像文件 和 BMP 图像文件,不直接支持 dxf和JPEG。
你需要自己写程序。
dxf文件是 ASCII, 可识别,例如 读 Arc (弧)和弧线参数,然后你用Opengl画弧线,读 Spline (样条曲线),和样条曲线参数,然后你用Opengl画曲线,读 3DLine,然后你用Opengl画三维线,。。。。
工作量很大。不如买现成软件。
‘拾’ c语言的一个问题,谢谢
/*程序写的很有问题,自己多写写,多看看吧!!!!!*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
void main()
{
FILE *in,*out;
char str[100]; /*应该初始化*/
float x[1000],y[1000]; /*同上*/
int i,j;
/*这条语句错误,少了个括号
if(in=fopen("spline.dxf","r")==NULL)
*/
if ((in = fopen("spline.dxf", "r")) == NULL)
{
printf("read faild");
getch();
}
i = 0;
while(fgets(str, 100, in)!=NULL)
{
/*if(str=="POLYLINE")*/ /*字符串不可以这么比较:str是个指针*/
if (!strcmp(str, "POLYLINE")) /*最好使用strncmp:或其它限定函数*/
{
while(fgets(str,99,in)!=NULL)
{
if(str==" 10") /*同上*/
{
fgets(str,100,in);
x[i]=atof(str);
}
else if(str==" 20") /*同上*/
{
fgets(str,100,in); /*判断是否出错?!!!*/
y[i]=atof(str);
i++;
}
else
fgets(str,100,in); /*判断是否出错,这是必须的*/
}
}
fclose(in);
/*这样的注释在某些编译器下是不能通过的:example-linux or aix: cc */
//write xyr.xyr /*不要这么注释*/
/*write xyr.xyr*/
j=i;
out=fopen("XYR.XYR","w"); /*希望有个if判断*/
fprintf(out,"1\n");
fprintf(out,"1\n");
fprintf(out,"%d",i);
fprintf(out,str);
for(i=0;i<j;i++)
{
fprintf(out,"%d %f %f 0\n",i+1,x[i],y[i]);
}
close(out); /*注意:你使用的打开文件的函数是fopen,这里要用fclose函数*/
return; /*不管函数是否需要返回值,最好都加上return*/
}