fazendo foto 3×4 em java

On January 26, 2011, in fotos, java, programacao, by athanazio
0

Hoje de tarde perguntei para a secretária da minha esposa que estava rodeando pela casa : ” Ae vai querer umas fotos 3×4 ? to fazendo umas e vou mandar imprimir … quer ? ” a resposta foi ótima !!! “pra que ? é tudo digital hoje … ” pronto eu com cara de tacho, maledito condomínio que esta pedindo fotos 3×4 para carteirinha da piscina, não podia ter uma camera por lá ?

Bem choradeira de lado, acabei resgatando um código que tinha feito em 2005 para montar uma folha de impressão de fotos 5×7, porque na época achei um absurdo pagar o preço pedido, ainda acho hehehe, dai fiz as fotos com o ipod mesmo, dei uma arrumada basica no código para suportar mais dimensões do que o 5×7 e pronto !! recebe como input uma imagem jpg e monta uma outra de saida no tamanho 1000×1500 que eh para ser impressa no tamanho 10×15.

clique na imagem para ver como fica o resultado :

o código em si não é complicado, é soh ter alguns cuidados na hora de compor a imagem de resultado e todos ficaram felizes, segue o código

package br.com.thz.photo;

import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.ImageIcon;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class ProtoComposer {

	private static final int BORDER = 5;

	public static void main(String[] args) throws FileNotFoundException, IOException {

		createImage3_4("mario.jpg");
		createImage3_4("cachorro.jpg");

	}

	private static void createImage3_4(String fileName) throws FileNotFoundException, IOException {
		createImage(fileName, 300, 400);
	}

	private static void createImage5_7(String fileName) throws FileNotFoundException, IOException {
		createImage(fileName, 500, 700);
	}

	private static void createImage(String fileName, int width, int height) throws FileNotFoundException, IOException {
		int x = 0;
		int y = 0;
		int maxWidth = 1000;
		int maxHeight = 1500;

		BufferedImage buffer = new BufferedImage(maxWidth, maxHeight, BufferedImage.TYPE_INT_RGB);
		Graphics2D g2 = buffer.createGraphics();
		ImageIcon image = new ImageIcon(fileName);

		g2.setColor(Color.WHITE);
		g2.fillRect(0, 0, maxWidth, maxHeight);

		// font definition
		Font font = new Font("Tahoma", Font.BOLD, 30);
		g2.setFont(font);

		// draw images with the dimension informed
		while ((x + width) <= maxWidth) {
			while ((y + height) <= maxHeight) {
				drawImageWithTimeStamp(g2, image.getImage(), x, y, width, height);
				y += height;
			}
			x += width;
			y = 0;
		}

		generateJPG(buffer, width +"_" + height + "_" + fileName);
	}

	private static void drawImageWithTimeStamp(Graphics2D g2, Image image, int x, int y, int w, int h) {
		g2.drawImage(image, x + BORDER, y + BORDER, w - BORDER, h - BORDER, null);

		String text = getDate();
		FontMetrics metrics = g2.getFontMetrics();
		Rectangle2D rect = metrics.getStringBounds(text, 0, text.length(), g2);
		g2.setColor(Color.BLACK);

		int lateral = (int) ((w - rect.getWidth()) / 2.0);
		Rectangle toFill = new Rectangle();
		toFill.x = x + lateral - BORDER;
		toFill.y = (int) (y + h - (2 * BORDER) - rect.getHeight());
		toFill.height = (int) rect.getHeight();
		toFill.width = (int) rect.getWidth() + BORDER;

		g2.fillRect(toFill.x, toFill.y, toFill.width, toFill.height);
		g2.setColor(Color.WHITE);
		g2.drawString(text, toFill.x, (int) (toFill.y + rect.getHeight() - (2 * BORDER)));

	}

	public static String getDate() {
		SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy");
		return sdf.format(new Date());
	}

	private static void generateJPG(BufferedImage buffer, String fileName) throws FileNotFoundException, IOException {

		FileOutputStream file = new FileOutputStream(fileName);

		JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(file);
		JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(buffer);
		param.setQuality(1.0F, true);
		encoder.setJPEGEncodeParam(param);

		encoder.encode(buffer);
		file.close();
	}

}
Tagged with:
 

fazendo backup com synkron

On August 11, 2010, in trecos, by athanazio
0


Acho que realmente cansei de fazer backups manualmente :) das pesquisas que fiz até cheguei a instalar o Comodo Backup, mas demorou tanto para carregar e instalar que desisti dele, deve usar um milhão de bibliotecas do windows … dai to fora. #fail

procurando um pouco mais achei um post legal comparando algumas ferramentas, e delas a que mais me atraiu foi a Synkron, não por ser a escolha do analisador, mas por ser multiplataforma.
a instalação foi otima levou 10 segundos :) pediu para usar a rede mas não deixei .. sei lah oque estes caras vão mandar e receber pela rede #no-network4u !

a primeira execução !

mandei logo de cara sincronizar o meu diretorio de fotos com o hd externo enorme que tenho (500Gb po meio Tera …)
bem agora esta trabalhanndo como um louco o pobre do aplicativo hehehe coloquei mais algumas pastas para sincronizar simultaneas, espero que funcione … :P

Tagged with:
 

jogo feito em SDL – timetris

On May 24, 2009, in games, trecos, by athanazio
1

Olas ! em minhas aventuras de jogos, desenvolvi mais um para a competição ludum dare, agora na versão mini.
O tema desta competição era “tempo”, e era necessário usar as trilhas sonoras fornecidas pela competição. fiz um tetris que usa relógios como os elementos gráficos do jogo.

baixe aqui o jogo !timetris_minild9_20090524

screenshot_timetris1

Tagged with:
 

criando jogos com LOVE2D – lição 1

On April 28, 2009, in games, videos, by athanazio
8


criando jogos com LOVE2D – lição 1 from Hamilton Lima on Vimeo.

Esta é a primeira aula do curso de criação de jogos usando o framework LOVE2D, espero que vc se divirta tanto quanto eu !! =) nesta lição falamos de :
- introdução ao LOVE2D
- uso de imagens na tela
- eventos de teclados

abs

Tagged with:
 

diodontidae – jogo novo

On April 20, 2009, in trecos, by athanazio
1

Neste fim de semana participei de outra competicao de jogos, mais uma maratona de 48 horas !! veja o listao da competicao ! www.ludumdare.com

Eu fiz um jogo onde vc controla um diodontidae,
que é um baiacú e vc come o lixo do fundo do mar e joga latinhas nos porcos que sujam o mar. aqui esta o link para baixar o jogo : http://www.vacavitoria.com/jogos/diodontidae-necandi/

diodontidae-necandi_tela

se vc tiver o LOVE instalado basta executar o arquivo .love diodontidae_necandi_v1

Tagged with:
 

LOVE games – belly

On April 16, 2009, in trecos, by athanazio
0

Olas ! estou estudando uma nova game engine que se chama LOVE

separei um jogo em divertido que baixei do forum, que vc compoe uma musica eletronica a medida que clica nas coisas na tela, muito show !!

belly-game

instale o player do game engine e clique ae em baixo para jogar

clique aqui para jogar belly-05-mod

Tagged with:
 

sons gratuitos e experimentais

On January 11, 2009, in games, by athanazio
0

muito show este site de efetios sonoros, tem uns experimentais muito legais
http://www.freesound.org
Este devo usar no jogo da galinha
http://www.freesound.org/samplesViewSingle.php?id=49805

Tagged with:
 

last.fm musica pra chuchu

On January 5, 2009, in Uncategorized, by athanazio
0

musica pra chuchu ! esta eh minha reação a este site show que meu vizinho me indicou hoje ! http://www.last.fm/home digratis, bonito, propaganda na medida certa, limpinho, e tem as coisas estranhas que gosto de ouvir !!

Tagged with:
 

player de video FLV

On November 27, 2008, in Uncategorized, by athanazio
2

Quer fugir do youtube ? quer fazer seu próprio site de videos ? hein hein ? seus problemas se acabaram !! use o http://flv-player.net/ e tibum ! tudo arresorvido !! huauhauha

Muito customizável o tal de player de video, não usei só dei uma olhada bem superficial.

Tagged with:
 

MS virtual server de gratis

On April 5, 2006, in Uncategorized, by athanazio
0

a Microsoft esta disponibilzando para download gratuito o Virtual Server 2005 R2 – Enterprise Edition
veja o artigo sobre o assunto,
vale a pena começar a pesquisar sobre o assunto de verticalização ….

Tagged with: