圖片用Excel畫出來(JAVA)
像網路上出現的用excel畫出超級瑪麗等等,各種圖片都能在excel上"畫"出來。
圖片我沒有經過特殊處理,所以轉換的圖片不能太大,有多大的圖片就要有多少的單元格。如640*480就有307200的單元格。
如要轉換的圖片:
轉換後在excel中的效果:
沒多大意義練練手:
import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Locale; import javax.swing.ImageIcon; import jxl.Workbook; import jxl.WorkbookSettings; import jxl.format.Colour; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.WritableCellFormat; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class Helper { private BufferedImage getBufferedImage(String filepath) { ImageIcon imgicon=new ImageIcon(filepath); BufferedImage bufferedImage = new BufferedImage(imgicon.getIconWidth(),imgicon.getIconHeight(),BufferedImage.TYPE_INT_RGB); bufferedImage.createGraphics().drawImage(imgicon.getImage(), 0, 0,null); return bufferedImage; } private Colour getNearestColour(Color awtColor) { Colour color = null; Colour[] colors = Colour.getAllColours(); if ((colors != null) && (colors.length > 0)) { Colour crtColor = null; int[] rgb = null; int diff = 0; int minDiff = 999; for (int i = 0; i < colors.length; i++) { crtColor = colors[i]; rgb = new int[3]; rgb[0] = crtColor.getDefaultRGB().getRed(); rgb[1] = crtColor.getDefaultRGB().getGreen(); rgb[2] = crtColor.getDefaultRGB().getBlue(); diff = Math.abs(rgb[0] - awtColor.getRed()) + Math.abs(rgb[1] - awtColor.getGreen()) + Math.abs(rgb[2] - awtColor.getBlue()); if (diff < minDiff) { minDiff = diff; color = crtColor; } } } if (color == null) color = Colour.BLACK; return color; } public void exec(String convertFromImage,String createxls) throws Exception { WorkbookSettings ws = new WorkbookSettings(); ws.setLocale(new Locale("en", "EN")); WritableWorkbook workbook = Workbook.createWorkbook(new File(createxls), ws); WritableSheet s2 = workbook.createSheet("picture", 0); BufferedImage buffimage= getBufferedImage(convertFromImage); int width=buffimage.getWidth(); int heigh=buffimage.getHeight(); for(int i=0;i<width;i++) { for(int h=0;h<heigh;h++) { WritableCellFormat greyBackground = new WritableCellFormat(); Color c = new Color(buffimage.getRGB(i, h)); greyBackground.setBackground( getNearestColour(c) ); Label lr = new Label(i, h, "", greyBackground); s2.addCell(lr); } } //寫入Excel物件 workbook.write(); workbook.close(); } /** * @param args * @throws IOException * @throws BiffException */ public static void main(String[] args) throws Exception { Helper helper=new Helper(); System.out.println("輸入的圖片:"+args[0]); System.out.println("輸出的excel:"+args[1]); System.out.println("轉換開始"); //轉換執行的方法引數 args[0]輸入的圖片路徑 args[1]輸出的excel路徑 // helper.exec( "mslogo.jpg","1.xls"); helper.exec(args[0],args[1]); } }
相關推薦
圖片用Excel畫出來(JAVA)
能夠將任何圖片在excel上利用單元格背景完整的描繪出來。 像網路上出現的用excel畫出超級瑪麗等等,各種圖片都能在excel上"畫"出來。 圖片我沒有經過特殊處理,所以轉換的圖片不能太大,有多大的圖片就要有多少的單元格。如640*480就有307200的單元格。
登入時生成驗證碼和後臺驗證詳解(驗證碼圖片用jsp顯示出來的)
登入視窗程式碼HTML <section class="mainlogin"> <div class="container"> <div class="col-md-4 col-md-offset-7 loginconte
[Excel圖表]用excel畫座標散點圖,並新增資料標籤
今天在寫畢業論文的時候發現自己需要畫座標圖,在網上找來找去終於找到了方法,下面是記錄: 開啟excel之後填好資料: 像這樣,之後選擇要畫的座標點,點選插入散點圖, 之後出現的散點圖是這樣的:並沒有達到預期的目的,因為我想讓每個點上都標上序號。 開始: 首先將散點圖轉換
通過java代碼實現調用excel當中的宏的操作。
合同 println ren () 版本 imp port exc length 最近做的項目是自動化生成基金的交易合同的操作。然後就想著通過java代碼去操作Excel當中的宏按鈕,然後生成word版本的合同的操作。 具體的java代碼如下: import org.ju
用滑鼠畫圓(java GUI)
話不多說,先看效果 當然你也可以發揮腦洞繪製更更棒的 原始碼如下: package javaBasic; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*;
JAVA以UTF-8匯出CSV檔案,用excel開啟產生亂碼的解決方法
先上一段程式碼(上好的程式碼,多年陳釀) OutputStreamWriter osw = new OutputStreamWriter(resp.getOutputStream(), "UTF-8"); // 要輸出的內容 result = (String)co
android 開發 View _12_ 用Canvas 繪製一張圖片(部落格中演示用Canvas畫驗證碼圖片)
package net.yt.yuncare.widgets; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import and
java後端生成二維碼圖片用來下載
應公司需求,要求生成二維碼圖片,並且將二維碼放進一張底層圖片上,並賦予文字。 1.首先我們要想辦法生成二維碼,二維碼是黑白雙色,中間不用新增商戶logo,這裡我們採用的google的jar包生成二維碼匯入maven依賴:<dependency> <
c# winform 用滑鼠畫拉出來的虛線框,滑鼠框選邊框效果
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using
Java Web篇:匯出等比例圖片到Excel
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();BufferedImage bufferImg = ImageIO.read(new File(savePath + System.getProperty("file.separa
用Java建立Excel檔案,Java Excel API的使用
Java Excel API的使用 Java Excel API(JXL)是一個成熟開源的Java類庫,用來操作Excel電子表格,支援讀取,修改,寫入等操作。這個專案基於GPL釋出,與poi比較,對中文有很好的支援。而且支援PNG格式圖片以及各種數字型別。當然poi除了可
excel宏的Java調用
獲得 end quit dll return 工作薄 aac param isp 下載jacob-1.19.zip https://sourceforge.net/projects/jacob-project/ jacob-1.19-x64.dll放到C:\Window
采用jsp頁面與java代碼分離的方式寫一個簡單的二維表
color arraylist 一個 3-9 業務 動態顯示 復雜 分層架構 方式 前提:在我們做程序時追求的是高內聚,低耦合,但是如果我們把jsp頁面的的代碼和java的代碼都放在了jsp的代碼編寫中,使java和jsp高耦合這樣的話不僅使jsp代碼頁面顯得很復雜,而
C# 讀取數據,顯示再dataggrideView上。 先用excel,後用sqlite3。
.dll xls data 讀取 沒有 adapter .net sqlite3 ted 最近在做一個訂單管理的軟件,考慮直接讀取excel,然後把數據顯示在datagridView上。,然後使用NPOI操作excel。 1 string strCon = "Prov
c# 圖片插入Excel
rgs 功能 handle ace pri change () spa sdn 引用COM:Microsoft Office 11.0 Object Library 引用類: using System; using System.Windows.Forms;
用python畫個五星紅旗
eth for forward margin mar turtle got idt 根據 根據下圖發現,主星和2、3副星從右畫就好,而1、4副星從左開始畫會比較好找坐標。 import turtle turtle.bgcolor("red") turtle.fil
php批量導入帶有圖片的Excel表格
php導入excel php批量導入圖片 <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +
phpexcel導出文件後,wps能用 excel打開亂碼解決
-type code post exe 導出文件 osi creat function new 導出excel後wps能用 excel打開亂碼,是因為導出的類使用方式問題 把$objWriter = new \PHPExcel_Writer_Excel2007($this-
用shape畫內圓外方,形成一個圓形頭像
imageview nco text 三角形 圓形 新建 watermark 透明 技術分享 很多人都有過這樣的經歷,想要在自己寫的程序裏,上傳一張隨便大小形狀的照片在程序裏顯示都是圓形照片,或者是方形,或者是三角形,但是寫代碼又非常麻煩,這裏就有一個也可以實現一樣效果的方
用python畫一朵玫瑰花
jpg port es2017 time logs 代碼 from mage light 廢話不多說,直接上代碼 from turtle import * import time setup(600,800,0,0) speed(0) penup() seth(90)