الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التنقل بين الصور مع وجود تاثير عند الانتقال

مغلق
بدأه صالح جابر في 16 أكتوبر 2006 · 1 رد · 528 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

حاولت اخواني تصميم برنامج ابلت لعرض مجموعة من الصور ويتم التنقل بين الصور بشكل تلقائي

وتم العملية بنجاح لكن احببت ان اضيف عندما يتم الانتقال من صورة الى اخرى يحدث تاثير معين على الصور مثلا انفلاش او شيء مقارب لهذا

يوجد مثال في هذا الرابط للكود الذي احتاجة

http://www.appletcollection.com/dissolveimage.html

والله يسهل امركم ان شاء الله

#2
// Decompiled by DJ v3.9.9.91 Copyright 2005 Atanas Neshkov  Date: 10/16/2006 1:46:38 PM
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 
// Source File Name:   dissolveimage2.java

import java.applet.Applet;
import java.applet.AppletContext;
import java.awt.*;
import java.awt.image.MemoryImageSource;
import java.awt.image.PixelGrabber;
import java.net.URL;

public class dissolveimage2 extends Applet
	implements Runnable
{

	public void init()
	{
		w = -1;
		h = -1;
		whb = false;
		setBackground(Color.white);
		bgi = fi(getParameter("bgcolor"), 16, 0);
		dly = fi(getParameter("transition_delay"), 10, 100);
		wp = fi(getParameter("delay"), 10, 1000);
		sc = fi(getParameter("step_count"), 10, 20);
		bgc = new Color(bgi);
		cusi = new int[100];
		tracker = new MediaTracker(this);
		i = 1;
		regcode = getParameter("regcode");
		if(regcode != null && regcode.equals("imgfdt9w56"))
			rg = true;
		target_frame = getParameter("target_frame");
		infostr = getParameter("info");
		ivalign = getParameter("image_valign");
		ialign = getParameter("image_align");
		do
		{
			bs = getParameter("image" + i);
			if(bs == null)
			{
				i--;
				if(i < 0)
					i = 0;
				break;
			}
			if(!bs.endsWith(".gif") && !bs.endsWith(".jpg"))
			{
				i--;
				if(i < 0)
					i = 0;
				break;
			}
			i++;
		} while(true);
		num = i;
		img = new Image[num + 1];
		links = new String[num + 1];
		stb = new String[num + 1];
		imgw = new int[num + 1];
		imgh = new int[num + 1];
		dur = new int[num + 1];
		for(i = 1; i <= num; i++)
		{
			img = getImage(getCodeBase(), "" + getParameter("image" + i));
			tracker.addImage(img, i % 5);
			links = getParameter("link" + i);
			stb = getParameter("status_bar_msg" + i);
			if(links == null)
			{
				dur = 0;
			} else
			{
				dur = 1;
				if(links.equals("") || links.equals(" ") || links.equals("no"))
					dur = 0;
			}
		}

		show();
		w = size().width;
		h = size().height;
		offi = createImage(w, h);
		offg2 = offi.getGraphics();
		offg2.setColor(bgc);
		offg2.fillRect(0, 0, w, h);
		durum = 0;
		for(container = getParent(); !(container instanceof Frame); container = container.getParent());
		frm = (Frame)container;
		whb = true;
	}

	public int fi(String s, int k, int l)
	{
		int i1 = 0;
		try
		{
			i1 = Integer.parseInt(s, k);
		}
		catch(Exception _ex)
		{
			i1 = l;
		}
		return i1;
	}

	public void ssts()
	{
		if(whb && inout == 1)
		{
			if(!rg)
			{
				showStatus("  Unregistered version of Dissolve Image Java applet. URL: www.appletcollection.com");
				return;
			}
			if(stb[crr] != null)
				showStatus("" + stb[crr]);
		}
	}

	public void smc()
	{
		if(whb && inout == 1)
		{
			if(dur[crr] == 0)
			{
				frm.setCursor(0);
				return;
			}
			frm.setCursor(12);
		}
	}

	public boolean mouseEnter(Event event, int k, int l)
	{
		inout = 1;
		if(whb)
		{
			if(durum != 2)
				return true;
			if(num <= 0)
				return true;
			ssts();
			repaint();
			smc();
		}
		return true;
	}

	public boolean mouseExit(Event event, int k, int l)
	{
		inout = 0;
		showStatus("");
		frm.setCursor(0);
		return true;
	}

	public boolean mouseUp(Event event, int k, int l)
	{
		if(whb)
		{
			if(dur[crr] == 0)
				return true;
			try
			{
				if(links[crr].startsWith("http://"))
					u = new URL("" + links[crr]);
				else
					u = new URL(getCodeBase(), "" + links[crr]);
			}
			catch(Exception _ex)
			{
				return true;
			}
			getAppletContext().showDocument(u, target_frame);
		}
		return true;
	}

	public void update(Graphics g)
	{
		if(whb)
		{
			oi.flush();
			offg2.drawImage(oi, X, Y, null);
			paint(g);
		}
	}

	public void paint(Graphics g)
	{
		if(whb)
		{
			if(durum == 2)
			{
				g.drawImage(offi, 0, 0, this);
				return;
			}
			g.setColor(Color.white);
			g.fillRect(0, 0, w, h);
			g.setColor(Color.black);
			if(durum == 0)
				g.drawString("Loading...", 10, 20);
			if(durum == 1)
			{
				g.drawString("Images", 10, 20);
				g.drawString("not found.", 10, 36);
			}
			if(durum == 3)
			{
				g.drawString("Images must be", 10, 20);
				g.drawString("the same size.", 10, 36);
			}
			if(durum == 4)
			{
				g.drawString("Info parameter", 10, 20);
				g.drawString("error.", 10, 36);
			}
		}
	}

	public void start()
	{
		if(rn == null || !rn.isAlive())
			rn = new Thread(this);
		rn.start();
	}

	public void stop()
	{
		if(rn != null)
		{
			rn.stop();
			rn = null;
		}
	}

	public void destroy()
	{
		rn = null;
	}

	public void run()
	{
		durum = 0;
		try
		{
			tracker.waitForAll();
		}
		catch(InterruptedException _ex) { }
		if(tracker.isErrorAny())
		{
			durum = 1;
			return;
		}
		for(i = 1; i <= num; i++)
		{
			imgw = img.getWidth(this);
			imgh = img.getHeight(this);
			if(i > 1 && (imgw != imgw[i - 1] || imgh != imgh[i - 1]))
			{
				durum = 3;
				repaint();
				return;
			}
			cw = imgw;
			ch = imgh;
		}

		if(ialign != null)
			if(cw < w)
			{
				X = 0;
				if(ialign.equals("center"))
					X = (w - cw) / 2;
				if(ialign.equals("right"))
					X = w - cw;
			} else
			{
				X = 0;
				if(ialign.equals("center"))
					X = -1 * ((cw - w) / 2);
				if(ialign.equals("right"))
					X = w - cw;
			}
		if(ivalign != null && ch < h)
		{
			if(ivalign.equals("center"))
				Y = (h - ch) / 2;
			if(ivalign.equals("bottom"))
				Y = h - ch;
		}
		dt = new int[num + 1][cw * ch];
		isle = new int[cw * ch];
		ait = new int[cw * ch];
		MIS = new MemoryImageSource(cw, ch, isle, 0, cw);
		for(i = 1; i <= num; i++)
		{
			pg = new PixelGrabber(img.getSource(), 0, 0, cw, ch, dt, 0, cw);
			try
			{
				pg.grabPixels();
			}
			catch(Exception _ex) { }
		}

		for(i = 0; i < cw * ch; i++)
		{
			isle = dt[1];
			ait = 1;
		}

		oi = createImage(MIS);
		if(infostr == null)
		{
			durum = 4;
			repaint();
			return;
		}
		if(!infostr.equals("Applet by Gokhan Dagli,www.appletcollection.com"))
		{
			durum = 4;
			repaint();
			return;
		}
		durum = 2;
		repaint();
		fd = sc;
		i = 0;
		ci = 0;
		cit = -1;
		long l = 1L;
		boolean flag = false;
		boolean flag1 = false;
		do
		{
			if(cit != ci)
			{
				cit = ci;
				tm = wp;
			} else
			{
				tm = dly;
			}
			try
			{
				Thread.sleep(tm);
			}
			catch(InterruptedException interruptedexception)
			{
				interruptedexception.printStackTrace();
			}
			md = ci % num + 1;
			md2 = md % num + 1;
			i = 0;
			int k = 0;
			int i1 = 0;
			if(fd < sc / 2)
			{
				crr = md2;
				ssts();
				smc();
			} else
			{
				crr = md;
			}
			long l1 = Math.round(Math.ceil(Math.random() * (double)fd));
			do
			{
				if(ait[i + i1] == md)
					k++;
				if((long)k >= l1)
				{
					isle[i + i1] = dt[md2][i + i1];
					ait[i + i1] = md2;
					i = i + sc;
					i1 = 0;
					k = 0;
					l1 = Math.round(Math.ceil(Math.random() * (double)fd));
				} else
				{
					i1++;
				}
			} while(i + i1 < cw * ch);
			fd--;
			if(fd == 0)
			{
				fd = sc;
				ci++;
			}
			repaint();
		} while(true);
	}

	public dissolveimage2()
	{
		ci = 1;
		wp = 100;
		crr = 1;
		bs = "";
		errstr = "";
		regcode = "";
		target_frame = "_self";
		infostr = "";
		ialign = "";
		ivalign = "";
		rg = false;
		whb = false;
	}

	Thread rn;
	Color bgc;
	int bgi;
	int i;
	int j;
	int num;
	int durum;
	int cw;
	int ch;
	int dly;
	int fd;
	int ci;
	int md;
	int md2;
	int cit;
	int wp;
	int tm;
	int crr;
	int w;
	int h;
	int X;
	int Y;
	int sc;
	int inout;
	Image img[];
	Image oi;
	Image offi;
	String bs;
	String errstr;
	String regcode;
	String target_frame;
	String infostr;
	String ialign;
	String ivalign;
	MediaTracker tracker;
	String links[];
	String stb[];
	int imgw[];
	int imgh[];
	PixelGrabber pg;
	int dt[][];
	MemoryImageSource MIS;
	Graphics offg2;
	int isle[];
	int ait[];
	boolean rg;
	boolean whb;
	int cusi[];
	URL u;
	int dur[];
	Frame frm;
	Container container;
}

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…