Você está na página 1de 2

PARTE I

Nesta parte, pretendesse desenvolver uma classe esttica com funes/procedimentos


auxiliares para manipulao de imagens (ColorImage). Nas alneas que contm a assinatura
da funo, esta deve ser preservada, dado que se pretende utiliz-la na Parte II.
A classe esttica a desenvolver dever conter:
A. Uma funo que dada uma imagem (ColorImage), devolva quantos pixis so de cor
branca.
B. Uma funo que dada uma imagem, devolva um vetor com todas as os pixis brancos.
public static Color[] brancos(ColorImage img) { }
C. Uma funo que dada uma imagem devolva verdadeiro caso todos os pixis
tenham a mesma cor. Caso contrrio, ser devolvido falso.
public static boolean todosMesmaColor(ColorImage img) { }
D. Uma funo que dados uma imagem, e um char ('r' ou 'g' ou 'b'), devolva a imagem
alterada reduzindo em 50% a componente RGB escolhida.
Caso o char passado no argumento no seja vlido, dever ser lanada uma exceo
apropriada.
public static ColorImage changeRGB(ColorImage img, char comp) { }
E. Um procedimento que dada uma imagem e duas cores (Color), pinte cada posio
aleatoriamente escolhida com uma cor aleatria entre as duas dadas como argumento, sendo
a probabilidade igual para ambas as cores.

PARTE II
A resposta a esta parte da frequncia dever consistir numa classe de objetos. Devero ser
utilizados os mecanismos de encapsulamento ao nvel da classe. Caso seja apropriado,
podem ser utilizados mtodos auxiliares. Em baixo apresentam-se as tarefas exigidas para
desenvolver os membros da classe:
tendo por base a aplicao IscteGram desenvolvida:
A. Defina os atributos necessrios e desenvolva um construtor de tal forma que seja
possvel especificar qual a ColorImage a fazer parte da classe CompositeEffects, o nmero
mximo de undos que se podem realizar, e construir o vector para guardar os undos.
B. Desenvolva uma funo que indica quantos pixes no brancos tem a imagem da Classe
CompositeEffects.
public int getPixeisBrancos() { }

C. Desenvolva funes que permitam saber:


1. O nmero total de efeitos aplicados at ao momento
2. Quais os efeitos aplicados (retornando o seu nome)
D. Desenvolva um procedimento para aplicar um efeito aleatrio a imagem da classe
CompositeEffects.
.

ColorImage
new ColorImage(linhas,colunas) : construtor, cria uma imagem com o numero de linhas e

colunas indicado nos argumentos.


getWidth() : devolve a largura da imagem.
getHeight() : devolve a altura da imagem.
getColor(x,y) : devolve a cor da imagem na posio indicada nos argumentos.
setColor(x,y,Color cor) : defina a cor a colocar na imagem na posio indicada nos argumentos.
getLuminance() : devolve a luminncia da imagem.
getColor(x, y).getR() : devolve a componente Red da cor, na posio indicada nos argumentos.
getColor(x, y).getG() : devolve a componente Green da cor, na posio indicada nos

argumentos.
getColor(x, y).getB() : devolve a componente Blue da cor, na posio indicada nos argumentos.

Math
Math.random() : devolve um valor real aleatrio no intervalo [ 0.0, 1.0 [.

Random
new Random() : (construtor) cria um gerador de nmeros aleatrios.
nextBoolean() : devolve um valor booleano aleatrio.
nextDouble() : devolve um valor real aleatrio no intervalo [ 0.0, 1.0 [.
nextInt() : devolve um valor inteiro aleatrio.
nextInt(max) : devolve um valor inteiro aleatrio no intervalo [ 0, max [.

Excees
IllegalArgumentException apropriada
para incorrees relacionadas com argumentos passados a
funes/construtores.
NullPointerException apropriada,
entre outras situaes, para o caso onde um argumento no pode ser
passado a null.
IllegalStateException apropriada
para a incorrees relacionadas com a impossibilidade de invocao
de determinadas operaes dado o estado atual do objeto.