当前位置:首页 » 操作系统 » png源码

png源码

发布时间: 2024-08-29 09:39:18

‘壹’ java程序将彩色png图片转为黑白的

帮你搜了一段网上流行的代码:

灰度变换
下面的程序使用三种方法对一个彩色图像进行灰度变换,变换的效果都不一样。一般而言,灰度变换的算法是将象素的三个颜色分量使用R*0.3+G*0.59+B*0.11得到灰度值,然后将之赋值给红绿蓝,这样颜色取得的效果就是灰度的。另一种就是取红绿蓝三色中的最大值作为灰度值。java核心包也有一种算法,但是没有看源代码,不知道具体算法是什么样的,效果和上述不同。

/* GrayFilter.java*/
/*@author:cherami */
/*email:[email protected]*/
import java.awt.image.*;
public class GrayFilter extends RGBImageFilter {
int modelStyle;
public GrayFilter() {
modelStyle=GrayModel.CS_MAX;
canFilterIndexColorModel=true;
}
public GrayFilter(int style) {
modelStyle=style;
canFilterIndexColorModel=true;
}
public void setColorModel(ColorModel cm) {
if (modelStyle==GrayModel
else if (modelStyle==GrayModel
}
public int filterRGB(int x,int y,int pixel) {
return pixel;
}
}

/* GrayModel.java*/
/*@author:cherami */
/*email:[email protected]*/
import java.awt.image.*;
public class GrayModel extends ColorModel {
public static final int CS_MAX=0;
public static final int CS_FLOAT=1;
ColorModel sourceModel;
int modelStyle;

public GrayModel(ColorModel sourceModel) {
super(sourceModel.getPixelSize());
this.sourceModel=sourceModel;
modelStyle=0;
}

public GrayModel(ColorModel sourceModel,int style) {
super(sourceModel.getPixelSize());
this.sourceModel=sourceModel;
modelStyle=style;
}

public void setGrayStyle(int style) {
modelStyle=style;
}

protected int getGrayLevel(int pixel) {
if (modelStyle==CS_MAX) {
return Math.max(sourceModel.getRed(pixel),Math.max(sourceModel.getGreen(pixel),sourceModel.getBlue(pixel)));
}
else if (modelStyle==CS_FLOAT){
return (int)(sourceModel.getRed(pixel)*0.3+sourceModel.getGreen(pixel)*0.59+sourceModel.getBlue(pixel)*0.11);
}
else {
return 0;
}
}

public int getAlpha(int pixel) {
return sourceModel.getAlpha(pixel);
}

public int getRed(int pixel) {
return getGrayLevel(pixel);
}

public int getGreen(int pixel) {
return getGrayLevel(pixel);
}

public int getBlue(int pixel) {
return getGrayLevel(pixel);
}

public int getRGB(int pixel) {
int gray=getGrayLevel(pixel);
return (getAlpha(pixel)<<24)+(gray<<16)+(gray<<8)+gray;
}
}

‘贰’ Android源码发开记录-修改开机logo启动页、开机动画

开机logo主要与kernel/drivers/video/logo下的logo_linux_clut224.ppm有关。
现kernel源码内一般以提供厂商的logo为主。
我们需要替换的文件也就是该ppm文件。

这里直接提供png转ppm的sh脚本。前提是必须安装了以下工具(pngtopnm,pnmquant,pnmtoplainpnm)

./png2ppm.sh XX.png

用生成的同名ppm文件替换logo_linux_clut224.ppm。
同时删除kernel/drivers/video/logo下的logo_linux_clut224.c和logo_linux_clut224.o

Android开机动画主要是由一个zip格式的压缩包bootanimation.zip组成,压缩包里面包含数张png格式的图片,还有一个desc.txt的文本文档,开机时按desc.txt里面的指令,屏幕上会按文件名称顺序连续的播放一张张的图片。、

这个一般flash制作或者选择交给美工制作了。图片张数尽量不要太多。
关键:图片一定要按顺序命名。

重点在于desc.txt文件。
其中1188 624代表分辨率,表示帧动画以这个分辨率显示。分辨率不是越高越好,容易造成开机卡顿,不流畅。
25表示的是帧数,就是每秒播放的图片数量。
p1(代表着播放一次) 0(空指令)part0 */这句指令就代表这part0文件夹内的图片只按名称顺序播放一次
p0(重复播放)0 (空指令)part1 */这一句指令代表着part1文件夹内的图片会循环反复播放

打包要用zip格式,而不是rar格式。另外压缩的时候压缩方式要选择存储。将压缩包名修改为bootanimation.zip。

1)可直接将生成的bootanimation.zip放入设备/system/meida目录下重启验证开机动画效果。
2)源码上可直接将bootanimation.zip拷贝至/out/target/proct/rk3288/system/media目录下,最终打包进成型固件中。

‘叁’ 源码编辑器游戏怎么做图片

1、打开源码编辑器。可以直接上传代码片段生成图片,支持所有的编程语言和代码风格,背景色可以自定义,效果实时显示,非常方便。
2、需要保存图片的话,直接点击右上角的Export按钮就行,目前官方支持2种格式的图片,一种是PNG,一种是SVG,输入文件名后,直接就可以保存。以上是源码编辑器游戏怎么做图片的操作方法。

热点内容
路闭合算法 发布:2024-09-15 01:21:12 浏览:906
编译程序包括编译和汇编嘛 发布:2024-09-15 01:21:09 浏览:657
哈罗单车服务器怎么看 发布:2024-09-15 01:07:41 浏览:848
服务器子网ip地址划分 发布:2024-09-15 00:49:48 浏览:308
飞智下载配置如何导入 发布:2024-09-15 00:37:27 浏览:684
微信零钱忘记支付密码怎么办 发布:2024-09-15 00:16:26 浏览:143
求职脚本 发布:2024-09-15 00:12:15 浏览:28
vivo专用存储卡有什么好处 发布:2024-09-15 00:09:31 浏览:691
一套水密码补水多少 发布:2024-09-14 23:57:51 浏览:771
我的世界服务器请求传送地皮 发布:2024-09-14 23:44:22 浏览:19