当前位置:首页 » 编程软件 » 编程png

编程png

发布时间: 2023-05-27 16:42:40

1. android编程:读取指定文件夹下所有png图片

1、程序,把Assets中的图像显示出来
try {
BufferedInputStream bis = new BufferedInputStream(getAssets()
.open("a.bmp"));
Bitmap bm = BitmapFactory.decodeStream(bis);
imageView01.setImageBitmap(bm);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("==========file not found======");
}
2、原理:Android中的资源分析
资源是Android应用程序中重要的组成部分。在应用程序中经常会使用字符串、菜单、图像、声音、视频等内容,都可以称之为资源。通过将资源放到与apk文件中与Android应用程序一同发布,在资源文件比较大的情况下,可以通过将资源作为外部文件来使用,我们将分析如何在Android应用程序中存储这些资源。
一、资源的存储
在android中,资源大多都是保存在res目录中,例如布局资源以XML文件的形式保存在res\layout目录中;图像资源保存着res\drawable目录中;菜单资源保存在res\menu目录中。ADT在生成apk文件时,这些目录中的资源都会被编译,然后保存到apk文件中。如果将资源文件放到res\raw目录中,资源将在不编译的情况下放入apk文件中。在程序运行时可以使用InputStream来读取res\raw目录中的资源。
如果使用的资源文件过大,我们可以考虑将资源文件作为外部文件单独发布。Android应用程序会从手机内存或者SD卡读取这些资源文件。
二、资源的种类
从资源文件的类型来划分,我们可以将资源文件划分为XML、图像和其它。以XML文件形式存储的资源可以放在res目录中的不同子目录里,用来表示不同种类的资源;而图像资源会放在res\drawable目录中。除此之外,可以将任意的资源嵌入Androidy应用程序中。比如音频和视频等,一般这些资源放在res\raw目录中。
表1、 Android支持的资源
目录 资源类型 描述
Res\values
XML
保存字符串、颜色、尺寸、类型、主题等资源,可以是任意文件名。对于字符串、颜色、尺寸等信息采用
Key-value形式表示,对于类型、主题等资源,采用其它形式表示
Res\layout
XML
保存布局信息。一个资源文件表示一个View或ViewGroup的布局
Res\menu
XML
保存菜单资源。一个资源文件表示一个菜单(包括子菜单)
Res\anim
XML
保存与动画相关的信息。可以定义帧(frame)动画和补间(tween)动画
Res\xml
XML
在该目录的文件可以是任意类型的XML文件,这些XML文件可以在运行时被读取。
Res\raw
任意类型
在该目录中的文件虽然也会被封装在apk文件中,但不会被编译。在该目录中可以放置任意类型的文件,例如,各种类型的文档、音频、视频文件等
Res\drawable
图像
该目录中的文件可以是多种格式的图像文件,例如,bmp、png、gif、jpg等。在该目录中的图像不需要分辨率非常高,aapt工具会优化这个目录中的图像文件。如果想按字流读取该目录下的图像文件,需要将图像文件放在res\raw目录中。
assets
任意类型
该目录中的资源与res\raw中的资源一样,也不会被编译。但不同的是该目录中的资源文件都不会生出资源ID
三、资源文件的命名
每一个资源文件或资源文件中的key-value对都会在ADT自动生成的R类(在R.java文件中)中找到相对应的ID.其中资源文件名或key-value对中的key就是R类中的java变量名。因此,资源文件名好key的命名首先要符合java变量的命名规则。
除了资源文件和key本身的命名要遵循相应的规则外,多个资源文件和key也要遵循唯一的原则。也就是说,同类资源的文件名或key不能重复。例如,两个表示字符串资源的key不能重复,就算这两个key在不同的XML文件中也不行。
由于ADT在生成ID时并不考虑资源文件的扩展名,因此,在res\drawable、res\raw等目录中不能存在文件名相同,扩展名不同的资源文件。例如在res\drawable目录不能同时放置icon.jpg和icon.png文件。
四、资源使用示例
在Android SDK中不仅提供了大量的系统资源,而且还允许开发人员定制自己的资源。不管是系统资源,还是自定义的资源,一般都会将这些资源放在res目录中,然后通过R类中的相应ID来引用这些资源。接下来将针对于XML类资源的使用进行分析。
XML资源实际上就是XML格式的文本文件,这些文件必须放在res\xml目录中。可以通过Resources.getXml方法获得处理指定XML文件的XmlResourceParser对象。实际上,XmlResourceParser对象处理XML文件的的过程主要是针对不同的状态点处理相应的代码,比如开始分析文档、开始分析标签、分析标签完成等,XmlResourceParser通过调用next方法不断更新当前的状态。
下面的代码,则是展示如何读取res\xml目录中的XML文件的内容,先在res\xml目录中建立一个xml文件。将AndroidManifest.xml文件复制到res\xml目录中,并改名为android.xml。
在准备完XML文件后,在onCreate方法中开始读取XML文件的内容,代码如下:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView textView=(TextView)findViewById(R.id.textview);
StringBuffer sb=new StringBuffer();
// 获得处理android。xml文件的XmlResourceParser对象
XmlResourceParser xml=getResources().getXml(R.xml.android);
try
{
//切换到下一个状态,并获得当前状态的类型
int eventType =xml.next();
while(true)
{
//文档开始状态
if(eventType == XmlPullParser.START_DOCUMENT)
{
Log.d("start_document","start_document");
}
//标签开始状态
else if(eventType ==XmlPullParser.START_TAG)
{
Log.d("start_tag",xml.getName());
//将标签名称和当前标签的深度(根节点的depth是1,第2层节点的depth是2,类推)
sb.append(xml.getName()+"(depth:"+xml.getDepth()" ");
//获得当前标签的属性个数
int count=xml.getAttributeCount();
//将所有属性的名称和属性值添加到StringBuffer对象中
for(int i=0;i<count;i++)
{
sb.append(xml.getAttributeName(i)+":
"+xml.getAttributeValue(i)+"");
}
sb.append(")\n");
}
//标签结束状态
else if(eventType ==XmlPullParser.END_TAG)
{
Log.d("end_tag",xml.getName());
}
//读取标签内容状态
else if(eventType ==XmlPullParser.TEXT)
{
Log.d("text","text");
}
//文档结束状态
else if(eventType ==XmlPullParser.END_DOCUMENT)
{
Log.d("end_document","end_document");
//文档分析结束后,退出while循环
break;
}
//切换到下一个状态,并获得当前状态的类型
eventType =xml.next();

}
textView.setText(sb.toString());

}
catch(Exception e) {}
}
二、如果想读入文件
在使用getAssets().open("anhui.xml")返回输人流之后,就可以以此为参数,后面的处理跟普通的java的处理相同。

2. 如何用c语言编程读入一张png格式的图片。

使用GDI+(只有链胡差一行代码):棚皮
Image img(TEXT(PNG图片路径));
还有libpng等等库,如果要自己做李实现读取代码就比较繁琐了

3. 关于arcgis的python脚本编程, shape文件出png图片问题

1、点类型的转栅格:

PointToRasterexample1(Python
window)


.

importarcpy
fromarcpyimportenv
env.workspace="c:/data"
arcpy.PointToRaster_conversion("ca_ozone_pts.shp","ELEVATION",
"c:/output/ca_elev","MAXIMUM","",2000)

PointToRasterexample2
(stand-alonescript)

.

#Name:PointToRaster_Ex_02.py
#Description:.
#Requirements:ArcInfo

#Importsystemmoles
importarcpy
fromarcpyimportenv

#Setenvironmentsettings
env.workspace="C:/data"

#Setlocalvariables
inFeatures="ca_ozone_pts.shp"
valField="ELEVATION"
outRaster="c:/output/ca_elev02"
assignmentType="MAXIMUM"
priorityField=""
cellSize=2000

#ExecutePointToRaster
arcpy.PointToRaster_conversion(inFeatures,valField,outRaster,
assignmentType,priorityField,cellSize)



2、面类型的转栅格:

PolygonToRasterexample1
(Pythonwindow)

.

importarcpy
fromarcpyimportenv
env.workspace="c:/data"
arcpy.PolygonToRaster_conversion("ca_counties.shp","NAME",
"c:/output/ca_counties.img",
"MAXIMUM_AREA","MALES",0.25)

PolygonToRasterexample2
(stand-alonescript)

.

#Name:PolygonToRaster_Ex_02.py
#Description:.
#Requirements:ArcInfo

#Importsystemmoles
importarcpy
fromarcpyimportenv

#Setenvironmentsettings
env.workspace="C:/data"

#Setlocalvariables
inFeatures="ca_counties.shp"
valField="NAME"
outRaster="c:/output/ca_counties"
assignmentType="MAXIMUM_AREA"
priorityField="MALES"
cellSize=0.5

#ExecutePolygonToRaster
arcpy.PolygonToRaster_conversion(inFeatures,valField,outRaster,
assignmentType,priorityField,cellSize)


3、线类型转栅格

PolylineToRasterexample1
(Pythonwindow)

.

importarcpy
fromarcpyimportenv
env.workspace="c:/data"
arcpy.PolylineToRaster_conversion("roads.shp","CLASS","c:/output/roads.img",
"MAXIMUM_COMBINED_LENGTH","LENGTH",30)

PolylineToRasterexample2
(stand-alonescript)

.

#Name:PolylineToRaster_Ex_02.py
#Description:.
#Requirements:ArcInfo

#Importsystemmoles
importarcpy
fromarcpyimportenv

#Setenvironmentsettings
env.workspace="C:/data"

#Setlocalvariables
inFeatures="roads.shp"
valField="CLASS"
outRaster="c:/output/roads.tif"
assignmentType="MAXIMUM_COMBINED_LENGTH"
priorityField="LENGTH"
cellSize=30

#ExecutePolylineToRaster
arcpy.PolylineToRaster_conversion(inFeatures,valField,outRaster,
assignmentType,priorityField,cellSize)

4. 在android编程中怎么插入背景图片

我知道的有两种方法。首先你先将一个.png的背景图片存入工程中res/drawble(当然drawble-hdpi、drawble-mdpi、drawble-ldpi中一个或者几个文件夹都可)文件夹中。假如我存入的图片名称为activity_bg.png

第一种,在对应的布局文件(自动生成的工程默认文件是在res/layout中的main.xml)中的LinearLayout(默认)属性中添加android:background="@drawable/activity_bg"

第二种,在你要添加背景的activity的类文件中setContentView(R.layout.main);(默认)之后添加一句getWindow().setBackgroundDrawableResource(R.drawable.activity_bg);

两种方法都能实现在activity中添加背景,第二种方法一定要先setContentView()再设背景,不然报错

5. c#将png转为raw图像

可以使用Python编程。
定义png内部表述结构体和png图片信息结构体以及调色板,打开输出文件output点png,创建悄茄和初始化pngstruct和pnginfo,设置错误跳转,设置输出控制,设置图片属性,分配和设置调色板空间,写文件数毕头,写入图片信息,文件写入完成。
RAW原始图像文件包含从数码相机、扫描器或电影胶片扫描仪的图像传感器所处理数据。之所启毕察以这样命名,是因为他们尚未被处理,未被打印或用于编辑。通常情况下,原始图像有宽色域的内部色彩,可以进行精确的调整,可以在转换之前作出一些简单修改,方便打印,或进一步的处理。

6. 为什么编程中图片都用PNG格式的

PNG,图像文件存储格式,其目的是试图(原来此处使用了"企图")替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。流式网络图形格式(Portable Network Graphic Format,PNG)名称来源于非官方的“PNG's Not GIF”,是一种位图文件(bitmap file)存储格式,读成“ping”。PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。PNG使用从LZ77派生的无损数据压缩算法。 一般应用于JAVA程序中,或网页或S60程序中是因为它压缩比高,生成文件容量小

热点内容
ubuntupython3安装 发布:2025-02-14 00:14:45 浏览:661
和平精英怎么更新比较快安卓 发布:2025-02-14 00:14:35 浏览:974
怎么改密码锁 发布:2025-02-13 23:47:39 浏览:852
androidbitmap获取大小 发布:2025-02-13 23:47:38 浏览:559
怎么把升级鸿蒙系统变回安卓 发布:2025-02-13 23:36:07 浏览:595
偶校验c语言 发布:2025-02-13 23:22:52 浏览:937
芒果如何提取离线缓存视频 发布:2025-02-13 23:16:12 浏览:793
王者荣耀微信区安卓哪里分低 发布:2025-02-13 23:14:10 浏览:658
安装linuxvmwaretools 发布:2025-02-13 22:56:02 浏览:8
浪潮服务器如何引导系统安装光盘 发布:2025-02-13 22:56:02 浏览:112