『壹』 java 如何給 圖片局部打碼
把圖片壓縮成32*32這個不難,java有這樣的類提供了方法
BufferedImage bi = new BufferedImage(w * 2 / scale, h * 2 / scale, bm.getType());//畫布大小
Graphics2D g2 = bi.createGraphics();
g2.drawImage(bm, 0, 0, w * 2 / scale, h * 2 / scale, null); //繪制縮小後的圖
// 轉換成JPEG圖像格式
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
JPEGEncodeParam jpeg = encoder.getDefaultJPEGEncodeParam(bi);
jpeg.setQuality(1f, false);
encoder.setJPEGEncodeParam(jpeg);
encoder.encode(bi);
byte[] data = bos.toByteArray();
但是要減少顏色數的話,這個比較麻煩,這個首先需要知道圖片中
顏色空間,比如16色,32色等,你需要讀取圖片文件中的內容,然後根據圖片頭的信息
讀取每個像素的RGB值(如果是RGB空間),並對每一個像素進行 顏色 設置
『貳』 程序員進來,筆試中寫代碼,應該寫哪裡的代碼順便指點一下以後的路
兄弟,首先說筆試中寫代碼,應該寫哪裡的代碼?這個問題要看題意了,要看人家想考你頁面知識水平還是想考你後台知識水平,要把握題意。一般情況下,筆試中的打碼一部分是基礎常規知識考查,就是知識點之類的,一般與項目無關。另一部分是與項目有關的,比如一個項目模型,實現簡單典型功能。關於資料庫的,筆試我我認為一般是考後台數據處理的,而不應該寫頁面代碼,雖然頁面也能和資料庫交互,這是分工分層問題,資料庫就用後台代碼處理,頁面主要任務就是表現顯示。
關於以後的路,兄弟既然是學軟體的,剛畢業,我建議還是堅持走這條路,最起碼前幾年或者是沒有發現更好方向之前,要好好鑽研軟體道路上的相關理論和知識,在工作中加強實踐。這條路干好了還是比較不錯的,盡管有時有些累。
畢竟剛畢業,遇到些挫折是正常的。
建議兄弟在工作的過程中,抽時間學習一下相關的軟體知識,以及其他開發語言,比如流行的java,jsp等等,知識范圍不要過於局限。將來有條件了也可以參加些職業培訓,大有好處。
如果兄弟現在身上沒錢,一時半會有不好找到工作,那建議可以先擴大就業范圍,保安啦,服務生啦,先干個一段時間,稍微攢點錢,緩解一下壓力,有點資本,再專心找工作。但是此過程中注意學習。
你可以在網路搜 「段小磊」,不管有沒有誇張成分,但是可以是個例子。
可以看出兄弟是個想自立的人,不想向家裡要錢。好樣的。萬不得已,還是要向家裡要些,先讓自己過得去。
祝兄弟好運!
『叄』 用Java如何實現給視頻中無關人員打碼
其實我覺得python更能勝任這種工作…
『肆』 java如何驅動條形碼列印機並能實現WEB列印
參考 javax.print.*
大致過程是這樣的:
寫一個servlet,專門實現列印服務
這個servlet內是這樣處理的:
1.獲取列印機對象printer
通過枚舉 PrintService printservices[] = PrintServiceLookup.lookupPrintServices(...)
2.生成DocPrintJob job=PrintService.createPrintJob();
3.生成文檔 Doc doc = new SimpleDoc(...);
需要3個參數
第一個是列印的數據,可以根據條碼,生成一幅圖像,然把圖像作為輸入流,作為第一個參數
第二個參數用一個 DocFlavor.INPUT_STREAM 對象
DocFlavor類有相應的靜態變數,你根據圖像的mime類型選擇
第三個參數是一個DocAttributeSet對象
4.列印
job.print(doc, pras);
這是我以前寫的練習:
-----------------------------------------------------------------------
package printtest;
import java.io.*;
import javax.print.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
public class Application1
{
public static void test(String code)
{
try{
DocFlavor flavor=DocFlavor.INPUT_STREAM.JPEG;
//get a printer
PrintService[] printers=PrintServiceLookup.lookupPrintServices( flavor, null);
for( int i=0; i<printers.length; i++ ) System.out.println( printers[i].getName());
PrintService printer=printers[0];
//job
DocPrintJob job=printer.createPrintJob();
//document
BufferedImage img=new BufferedImage( 400,300, BufferedImage.TYPE_USHORT_555_RGB );
Graphics g=img.getGraphics();
g.drawString(code, 100,100);
ByteArrayOutputStream outstream=new ByteArrayOutputStream();
ImageIO.write( img, "jpg", outstream);
byte[] buf=outstream.toByteArray();
InputStream stream=new ByteArrayInputStream(buf);
Doc doc=new SimpleDoc(stream,flavor,null);
//print
job.print(doc, null);
}
catch(Exception e)
{
e.printStackTrace();
}
}
//Main method
public static void main(String[] args)
{
test("12345");
}
}
『伍』 聯通驗證碼識別,用JAVA或C語言。
去掉干擾線用tesseract識別的話 像這種圖片我想正確率應該不會太低了,
低的原因是你要訓練自己的庫,默認帶的語言包只是針對印刷體文字的
不大適合有變形 扭曲之類的字元
『陸』 碼農都是用什麼語言打碼
最基礎的入門級別一般學習C語言或Visual Basic語言,後續的大神一般採用更復雜的JAVA語言。如果你想學習游戲編程,可以學習Unity。
『柒』 在java中人民幣匯率轉換成美元和歐元怎麼寫打碼
public class Test {public static void main(String args[]){String word = "hello world ! 123456 hI, tHEre";String[] words =word.split(" "); for (int i = 0; i < words.length; i++) {for (int j = 0; j < words[i].length(); j++) {if (j==0) {System.out.print((words[i].charAt(j)+"").toUpperCase());} else {System.out.print((words[i].charAt(j)+"").toLowerCase());}}System.out.print(" ");}}}使用空格區分單詞,自動單詞首字母大寫,其他部分小寫。如果單詞首字母以外的部分不需要修改的話把else刪掉即可。
『捌』 求一個能自動打驗證碼的軟體 要能用的 不要病毒
是web 上用的嗎,這里有個 jsp 上用的:
package com.vnvmall.goldfish.util;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class ValidateImage extends HttpServlet
{
public void init(ServletConfig conf) throws ServletException
{
super.init(conf);
}
public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
res.setContentType("image/jpeg");
res.setHeader("Pragma","No-cache");
res.setHeader("Cache-Control","no-cache");
res.setDateHeader("Expires", 0);
HttpSession session = req.getSession();
// 在內存中創建圖象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 獲取圖形上下文
Graphics g = image.getGraphics();
// 生成隨機類
Random random = new Random();
// 設定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
// 設定字體
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
// 畫邊框
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);
// 隨機產生155條干擾線,使圖象中的認證碼不易被其它程序探測到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
// 取隨機產生的認證碼(4位數字)
String sRand="";
for (int i=0;i<4;i++)
{
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 將認證碼顯示到圖象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
// 調用函數出來的顏色相同,可能是因為種子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}
// 將認證碼存入SESSION
session.setAttribute("VerifyCode",sRand);
// 圖象生效
g.dispose();
// 輸出圖象到頁面
ImageIO.write(image, "JPEG", res.getOutputStream());
//JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(res.getOutputStream());
//encoder.encode(image);
}
public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
doGet(req,res);
}
//給定范圍獲得隨機顏色
private Color getRandColor(int fc,int bc)
{
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
}
『玖』 打碼中的大小寫要分的嗎
如果指的是java源代碼,需要區分大小寫。基本所有的高級語言都需要區分大小寫,只有個別語言和匯編不需要區分。。。