java生成tga图片_Java TGA加载器

我们使用从一些开源项目复制的这个类来读取TGA文件.它真的很老了.它只能处理具有最基本编码的Targa文件.试试看.

public class TargaReader

{

public static Image getImage(String fileName) throws IOException

{

File f = new File(fileName);

byte[] buf = new byte[(int)f.length()];

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));

bis.read(buf);

bis.close();

return decode(buf);

}

private static int offset;

private static int btoi(byte b)

{

int a = b;

return (a<0?256+a:a);

}

private static int read(byte[] buf)

{

return btoi(buf[offset++]);

}

public static Image decode(byte[] buf) throws IOException

{

offset = 0;

// Reading header

for (int i=0;i<12;i++)

read(buf);

int width = read(buf)+(read(buf)<<8);

int height = read(buf)+(read(buf)<<8);

read(buf);

read(buf);

// Reading data

int n = width*height;

int[] pixels = new int[n];

int idx=0;

while (n>0)

{

int nb = read(buf);

if ((nb&0x80)==0)

{

for (int i=0;i<=nb;i++)

{

int b = read(buf);

int g = read(buf);

int r = read(buf);

pixels[idx++] = 0xff000000 | (r<<16) | (g<<8) | b;

}

}

else

{

nb &= 0x7f;

int b = read(buf);

int g = read(buf);

int r = read(buf);

int v = 0xff000000 | (r<<16) | (g<<8) | b;

for (int i=0;i<=nb;i++)

pixels[idx++] = v;

}

n-=nb+1;

}

BufferedImage bimg = new BufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);

bimg.setRGB(0,0,width,height,pixels,0,width);

return bimg;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试腾讯,过了~

大概需要10分钟。原谅下&#xff0c;又标题党了&#xff0c;不过这篇会提到我应届面试腾讯的经历。前两天在朋友圈发了一条动态&#xff1a;要做读者朋友的指路小火苗&#xff0c;很多人在状态下留言&#xff1a;为啥不是指路明灯&#xff1f;为啥不是小油灯&#xff1f;原因很…

传说中理科生看到会沉默、文科生看到会流泪的【程序员文史综合题目】

全世界只有3.14 % 的人关注了数据与算法之美一、单选题1、以下谁是二进制思想的最早提出者&#xff1f;a&#xff0c;伏羲&#xff1b;b&#xff0c;姬昌&#xff1b;c&#xff0c;莱布尼茨&#xff1b;d&#xff0c;柏拉图。2、以下哪个概念和公孙龙的《指物论》中的“指”字含…

智能制造建设方案

随着新一轮工业革命的发展&#xff0c;工业转型的呼声日渐高涨。面对信息技术和工业技术的革新浪潮&#xff0c;美国人出台了先进制造业回流计划&#xff0c;提出了工业互联网战略&#xff0c;德国人提出了工业4.0战略&#xff0c;中国加紧推进两化深度融合&#xff0c;并发布了…

SharePoint 常见问题

http://social.microsoft.com/Forums/zh-CN/sharepointportalserverzhchs/thread/3342e49b-1184-4ff2-810c-367b473ff9db转载于:https://www.cnblogs.com/tjsunyf/archive/2012/08/27/2658635.html

深入LINQ | 动态构建LINQ表达式

原文&#xff1a;bit.ly/3fwlKQJ作者&#xff1a;Jeremy Likness译者&#xff1a;精致码农-王亮LINQ 是 Language Integrated Query&#xff08;语言集成查询&#xff09;的缩写&#xff0c;是我最喜欢的 .NET 和 C# 技术之一。使用 LINQ&#xff0c;开发者可以直接在强类型代码…

java查找字符的方法_Java字符串查找(3种方法)

在给定的字符串中查找字符或字符串是比较常见的操作。字符串查找分为两种形式&#xff1a;一种是在字符串中获取匹配字符(串)的索引值&#xff0c;另一种是在字符串中获取指定索引位置的字符。根据字符查找String 类的 indexOf() 方法和 lastlndexOf() 方法用于在字符串中获取匹…

Oracle迁移索引

第一条&#xff0c;clob的索引别乱动 ALTER TABLE table_a MOVE TABLESPACE Tbs_tb LOB (ATTRIBUTE) STORE AS(TABLESPACE tbs_lob); 快速指南&#xff1a; alter index schema.index_1 rebuild tablespace TBS_IDX; 批量的话可以写个sql&#xff0c;例如&#xff1a; select a…

2018 Kaggle 报告:在技术领域,女性从业者持续减少,00后开始展露头脚

全世界只有3.14 % 的人关注了数据与算法之美就在上个月&#xff0c;Kaggle社区发布了《2018 Kaggle机器学习和数据科学调研》&#xff0c;调研结果显示&#xff1a;在技术领域&#xff0c;女性从业者持续减少&#xff1b;00后开始登上从业舞台&#xff1b;而且&#xff0c;23%受…

Nuget Package 支持打包 ReadMe 了

Nuget Package 支持打包 ReadMe 了Intro在 3月份&#xff0c;我们在NuGet生态系统状态上发布了一个博客&#xff0c;其中讨论了过去六个月以来从数百名客户那里获得的见解。客户在我们的调查中发现的最大问题之一是&#xff0c;“大多数软件包的文档不足”&#xff0c;可以从Nu…

秒级定时计划

碰到一道面试题&#xff0c;每个10秒打印一次系统时间&#xff0c;投机取巧&#xff0c;弄成功了。$ for i in seq 1 10;do date;sleep 10 ;done 2012年 08月 29日 星期三 08:51:32 CST 2012年 08月 29日 星期三 08:51:42 CST 2012年 08月 29日 星期三 08:51:52 CST 2012年 08月…

幸运从来都只偏爱有准备的人——大龄码农的慌张日记

很多人将一件事的成功归结于能力&#xff0c;也有很多人将其归结为运气。今天要在这里跟大家分享的朋友名叫Leon&#xff0c;他在纽村政府注重本地人就业的大环境下&#xff0c;用时1个月以配偶工签的身份成功拿到大厂offer。接到我们的邀稿后&#xff0c;他花了很多心思写了这…

程序员必备表情包,速速收藏!

全世界只有3.14 % 的人关注了数据与算法之美程序猿怒产品 &#xff1a;程序猿不想和你说话&#xff0c;并… 被吐槽写BUG时怎么办 产品又来提需求 产品又要改需求&#xff0c;怎么办 产品说&#xff0c;这个功能三天后就要 日常怼产品 日常工作内心咆哮 来源&#xff1a;网络版…

java中立方根方法_java基础:4、java中Math类的常用方法?

4、java中Math类的常用方法&#xff1f;Java的Math类封装了很多与数学有关的属性和方法。如下所示&#xff1a;System.out.println("计算平方根--Math.sqrt(81)-- "Math.sqrt(81));//9.0System.out.println("计算立方根--Math.cbrt(27)-- "Math.cbrt(27)…

深度解读服务治理 ServiceMesh、xDS

最近在同程艺龙蹲坑&#xff0c;聊一聊微服务治理的核心难点、历史演进、最新实现。☺️以上内容属自我思考&#xff0c;如理解有偏差、理解不透彻、现状梳理不清楚的请大家多指教。大纲微服务治理的核心难点方案演进的法宝&#xff1a;代理模式2.1 集中式代理2.2 客户端嵌入Sd…

struts2 kindeditor teatarea拿不到值问题。

2019独角兽企业重金招聘Python工程师标准>>> 源&#xff1a; <script type"text/javascript">var editor;KindEditor.ready(function(K) {editor K.create(textarea[name"userinfo.introduce"], {resizeType : 1,allowPreviewEmoticons …

三个字帮大家总结一下刘强东事件

全世界只有3.14 % 的人关注了数据与算法之美真干了【别和我说话】“工作战衣”的预售活动正在火热进行中&#xff0c;数量有限&#xff0c;欲购从速&#xff01;购买者还将会有机会免费获超级数学建模的第一本书&#xff08;附超模君亲笔签名&#xff0c;只限20名哦&#xff09…

【思维导图】新手该怎么学习C#/WPF

C#和WPF没有什么多大的关系&#xff0c;WPF是一个框架&#xff0c;VB都可以写WPF&#xff0c;至于如何学习C#&#xff0c;还是老样子&#xff01;基础&#xff1a;基础语法基础API基础练习所谓基础语法&#xff0c;包括if /if else &#xff0c;swicth&#xff0c;while&#x…

简单的桌面转移D盘

第一步&#xff1a;在D盘新建”桌面“文件夹第二步&#xff1a;开始---------运行------------输入Regedit ------找到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders&#xff08;也可以进入注册表后点菜单编辑查找&#xff0c;输入…

信号转化java_Java基础知识回顾-7

1、ByteArrayInputStream、ByteArrayOutputStreamString str "ZHANGSAN";//System.out.println(str.toLowerCase());ByteArrayInputStream inputStream newByteArrayInputStream(str.getBytes());ByteArrayOutputStream outputStream newByteArrayOutputStream();i…

程序员搞笑故事:给女儿织的辫子 ​​​​,你知道是什么算法吗?

全世界只有3.14 % 的人关注了数据与算法之美1、程序员给女儿织的辫子 &#xff0c;你知道是什么算法吗&#xff1f;推荐阅读《啊哈&#xff01;算法》2、一个姑娘在我女友面前声讨她的男友&#xff0c;女友帮腔说&#xff1a;学土木工程的嘛&#xff0c;肯定又土又木。姑娘问&a…