Russian version
English version
ОБ АЛЬЯНСЕ | НАШИ УСЛУГИ | КАТАЛОГ РЕШЕНИЙ | ИНФОРМАЦИОННЫЙ ЦЕНТР | СТАНЬТЕ СПОНСОРАМИ SILICON TAIGA | ISDEF | КНИГИ И CD | ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ | УПРАВЛЕНИЕ КАЧЕСТВОМ | РОССИЙСКИЕ ТЕХНОЛОГИИ | НАНОТЕХНОЛОГИИ | ЮРИДИЧЕСКАЯ ПОДДЕРЖКА | АНАЛИТИКА | КАРТА САЙТА | КОНТАКТЫ
 
Программное обеспечение
 
Для зарегистрированных пользователей
 
РАССЫЛКИ НОВОСТЕЙ
IT-Новости
Новости компаний
Российские технологии
Новости ВПК
Нанотехнологии
 
Поиск по статьям
 
RSS-лента
Подписаться
Документация

Конвертируем GIF/JPG в HTML

Очень забавная программка. Конвертирует изображение картинки .GIF/.JPG в HTML формат :)
Единственный минус этого примера, какртинку 750х500 компьютер с конфигурацией PIII 550 и 128 оперативки конвертирует 20 часов !!!!
круто ? :)

[Image]

Листинг 1

import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.awt.event.*;

public class img2html extends Frame { static Image im=null; static int W=-1,H=-1;

public img2html() {}

public static void main(String args[]) { String infile,outfile; infile="UNSPECIFIED"; outfile="UNSPECIFIED"; boolean paramsOK=false,mode=false; if (args.length <= 1) { usage(); paramsOK=false; } if (args.length == 2) { infile = args[0]; outfile = args[1]; paramsOK=true; } if (paramsOK) { System.out.println("img2html :"); System.out.println(" image file " + infile); System.out.println(" data file " + outfile); img2html widow = new img2html(); System.out.println("img2html : Loading image file"); if (widow.processFile(infile)==false) { System.exit(0); } System.out.println("img2html : Saving data file"); saveByteData(outfile,mode); System.exit(0); } }

public static void saveByteData(String fn,boolean i) { int[] grabMapXY; grabMapXY = new int[(W * H)]; int pix; PixelGrabber pg = new PixelGrabber(im,0,0,W,H,grabMapXY,0,W); // start grab try { pg.grabPixels(); } catch (InterruptedException e) { System.out.println("Map grab failed : " + e); return; } if ((pg.status() & ImageObserver.ABORT) != 0) { System.out.println("Map grab failed !"); return; } // need to base r on number of valid pixels writeToFn(fn,""); writeToFn(fn,""); writeToFn(fn,""); writeToFn(fn,""); writeToFn(fn,""); int red,green,blue,p; String r,g,b; Color c; for (int y =0; y < H; y++) { writeToFn(fn," "); for (int x =0; x < W; x++) { pix=grabMapXY[ y * W + x ]; c = new Color(pix); red=c.getRed(); blue=c.getBlue(); green=c.getGreen(); r=Integer.toHexString(red); g=Integer.toHexString(green); b=Integer.toHexString(blue); if (r.length()==1) { r="0"+r; } if (g.length()==1) { g="0"+g; } if (b.length()==1) { b="0"+b; } writeToFn(fn," "); } writeToFn(fn," "); } writeToFn(fn,""); writeToFn(fn,"
", " " + x + "," + y + " - of - " + W + "," + H); writeToFn(fn,"
"); writeToFn(fn,""); writeToFn(fn,""); writeToFn(fn,""); }

public static void writeToFn(String fn,String Dbytes,String status) { try { System.out.println(Dbytes + " pixel " + status); DataOutputStream dos = new DataOutputStream( new FileOutputStream(fn,true)); dos.writeBytes(Dbytes); // dos.writeByte(13); // line feed for each line dos.writeByte(10); // line feed for each line // close here dos.close(); } catch (IOException e) { System.err.println("File error: " + e.getMessage()); } }

public static void writeToFn(String fn,String Dbytes) { try { System.out.println(Dbytes ); DataOutputStream dos = new DataOutputStream( new FileOutputStream(fn,true)); dos.writeBytes(Dbytes); // dos.writeByte(13); // line feed for each line dos.writeByte(10); // line feed for each line // close here dos.close(); } catch (IOException e) { System.err.println("File error: " + e.getMessage()); } }

public boolean processFile(String fn) { boolean OK=false; int exitcounter; try { im = getToolkit().getImage(fn); } catch (Exception e) { System.out.println("1HOLY MOLY THIS NEVER HAPPENS!!!! "+e); } MediaTracker tracker= new MediaTracker(this); tracker.addImage(im,0); try { tracker.waitForID(0); } catch (InterruptedException e) { System.out.println("2HOLY MOLY THIS NEVER HAPPENS "+e); } if (tracker.isErrorID(0)) { System.out.println("IMAGE FILE COULD NOT BE LOADED"); System.out.println(fn); } else { exitcounter=0; while ( ((W==-1)//(H==-1)) && (exitcounter<=16000000) ) { W=im.getWidth(null); H=im.getHeight(null); exitcounter++; } if (exitcounter>15999999) { System.out.println("Timeout attempting to load image, is it to big?"); } else { OK=true; } } return(OK); }

public static void usage() { System.out.println("Usage:"); System.out.println("java img2html infile outfile "); System.out.println(" infile : image file .gif "); System.out.println(" outfile : html file to be created"); //System.out.println(" /i : Inverse data "); }

} // end of class

[Image] СКАЧАТЬ ИСХОДНИК(~46Kb)


  Рекомендовать страницу   Обсудить материал Написать редактору  
  Распечатать страницу
 
  Дата публикации: 10.03.2006  

ОБ АЛЬЯНСЕ | НАШИ УСЛУГИ | КАТАЛОГ РЕШЕНИЙ | ИНФОРМАЦИОННЫЙ ЦЕНТР | СТАНЬТЕ СПОНСОРАМИ SILICON TAIGA | ISDEF | КНИГИ И CD | ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ | УПРАВЛЕНИЕ КАЧЕСТВОМ | РОССИЙСКИЕ ТЕХНОЛОГИИ | НАНОТЕХНОЛОГИИ | ЮРИДИЧЕСКАЯ ПОДДЕРЖКА | АНАЛИТИКА | КАРТА САЙТА | КОНТАКТЫ

Дизайн и поддержка: Silicon Taiga   Обратиться по техническим вопросам  
Rambler's Top100 Rambler's Top100