Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2012, 15:11   #1
XSGRAFF
 
Регистрация: 29.12.2008
Сообщений: 8
По умолчанию Апплет

Всем привет.
Был дан исходный код апплета,где загружалась картинка и несколько кнопок,при нажатии на кнопки срабатывали некоторые фильтры(sharpen,grayscale, и тд).

Мне же нужно с помощью CropImageFilter вырезать лица, чтобы при нажатии на кнопки, эти лица выводились на экран. Сам класс работает, но вот прицепить его к исходнику у меня не получается(

вот один из кропов

import java.applet.*;
import java.awt.*;
import java.awt.image.*;
public class Crop extends Applet {

Image i, j;
public void init () {
MediaTracker mt = new MediaTracker (this);
i = getImage (getDocumentBase(), "beatles1.jpg");
mt.addImage (i, 0);
try {
mt.waitForAll();
int width = i.getWidth(this);
int height = i. getHeight(this);
j = createImage (new FilteredImageSource (i.getSource(),
new CropImageFilter (60, 50,
150, 150)));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void paint (Graphics g) {

if (j != null) {
g.drawImage (j, 150, 150, this); // cropped
}
}
}

а вот исходники,в которые это все нужно запилить:

ImageFilterDemo

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class ImageFilterDemo extends Applet implements ActionListener {
Image img;
PlugInFilter pif;
Image fimg;
Image curImg;
LoadedImage lim;
Label lab;
Button reset;

public void init() {
setLayout (new BorderLayout());
Panel p = new Panel();
add(p, BorderLayout.SOUTH);
reset = new Button("Reset");
reset.addActionListener(this);
p.add(reset);
StringTokenizer st = new StringTokenizer(getParameter("filte rs"), "+");
while(st.hasMoreTokens()) {
Button b = new Button(st.nextToken());
b.addActionListener(this);
p.add(b);
}

lab = new Label("");
add(lab, BorderLayout.NORTH);

img = getImage(getDocumentBase(), getParameter("img"));
lim = new LoadedImage(img);
add(lim, BorderLayout.CENTER);
}

public void actionPerformed(ActionEvent ae) {
String a = "";

try {
a = (String)ae.getActionCommand();
if (a.equals("Reset")) {
lim.set(img);
lab.setText("Normal");
}
else {
pif = (PlugInFilter) Class.forName(a).newInstance();
fimg = pif.filter(this,img);
lim.set(fimg);
lab.setText("Filtered: " + a);
}
repaint();
} catch (ClassNotFoundException e) {
lab.setText(a+ "not found");
lim.set(img);
repaint();
} catch (InstantiationException e) {
lab.setText("couldn't new" +a);
} catch(IllegalAccessException e) {
lab.setText("no access: " + a);
}
}
}

ImageFilterDemo.html

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div>TODO write content</div>
<applet code=ImageFilterDemo width=400 height=417>
<param name=img value=beatles1.jpg>
<param name=filters value="Crop+Crop2+Crop3+Crop4">
</applet>
</body>
</html>

LoadedImage

import java.awt.*;

public class LoadedImage extends Canvas {
Image img;

public LoadedImage(Image i) {
set(i);
}

void set(Image i) {
MediaTracker mt = new MediaTracker(this);
mt.addImage(i, 0);
try {
mt.waitForAll();
} catch (InterruptedException e) { };
img = i;
repaint();
}

public void paint(Graphics g) {
if (img==null) {
g.drawString("no image", 10, 30);
} else {
g.drawImage(img, 0, 0, this);
}
}

public Dimension getPreferredSize() {
return new Dimension(img.getWidth(this), img.getHeight(this));
}

public Dimension getMinimumSize() {
return getPreferredSize();
}
}

PlugInFilter

interface PlugInFilter {
java.awt.Image filter(java.applet.Applet a, java.awt.Image in);
}

ну и картинка
XSGRAFF вне форума Ответить с цитированием
Старый 09.12.2012, 15:12   #2
XSGRAFF
 
Регистрация: 29.12.2008
Сообщений: 8
По умолчанию

то есть,нужно переделать Crop,чтобы он работал в данном приложении.
буду очень признателен за любую помощь
XSGRAFF вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java. Апплет. События. Garry@'' Помощь студентам 0 25.10.2012 12:40
не отображает апплет legendary Общие вопросы по Java, Java SE, Kotlin 2 10.06.2012 19:29
Апплет на Ubuntu makashello Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 1 04.10.2011 16:56
Многопоточной апплет J.Bond Помощь студентам 0 23.11.2010 09:06
Апплет из приложения Dim2 Общие вопросы по Java, Java SE, Kotlin 1 08.05.2010 09:11