Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.01.2007, 23:41
pets вне форума Посмотреть профиль Отправить личное сообщение для pets Посетить домашнюю страницу pets Найти все сообщения от pets
  № 1  
Ответить с цитированием
pets
 
Аватар для pets

Регистрация: Jun 2003
Адрес: Odessa, Ukraine
Сообщений: 93
Отправить сообщение для pets с помощью ICQ
Tools Растрирование изображения

ПРИВЕТ... Есть вопрос , если сможете помогите плиз, есть такой эффект во флеше - растеризация картинки - по типу - http://www.templatemonster.com/flash...ates/8366.html
там появляется девочка так... сначала квадратики и из них картинка, если кто знает каким образом это можно осуществить с помощью ActionScript для любой картинки объясните плизз, спасибо большое.

Старый 25.01.2007, 02:28
Llex3D вне форума Посмотреть профиль Отправить личное сообщение для Llex3D Найти все сообщения от Llex3D
  № 2  
Ответить с цитированием
Llex3D
 
Аватар для Llex3D

Регистрация: Oct 2004
Сообщений: 149
Как по мне, этот эффект прорисован покадорво, специально делали такую анимацию, переходя от квадратов в растровую картинку.

Старый 25.01.2007, 02:35
pets вне форума Посмотреть профиль Отправить личное сообщение для pets Посетить домашнюю страницу pets Найти все сообщения от pets
  № 3  
Ответить с цитированием
pets
 
Аватар для pets

Регистрация: Jun 2003
Адрес: Odessa, Ukraine
Сообщений: 93
Отправить сообщение для pets с помощью ICQ
спасибо... это очевидно, но мне и нужен эффект который бы скриптом растрировал изображения... допустим как в FireFox-е когда картинка подгружается... если кто знает как - ответьте плиз... СПАСИБО!

Старый 25.01.2007, 04:23
Ieshua вне форума Посмотреть профиль Отправить личное сообщение для Ieshua Найти все сообщения от Ieshua
  № 4  
Ответить с цитированием
Ieshua

Регистрация: May 2004
Адрес: Москва
Сообщений: 76
По умолчанию bitmapData

Думаю с помощью bitmapData - возможно реализовать данный эффект.
__________________
Улыбка - понятие растяжимое...

Старый 25.01.2007, 04:45
pets вне форума Посмотреть профиль Отправить личное сообщение для pets Посетить домашнюю страницу pets Найти все сообщения от pets
  № 5  
Ответить с цитированием
pets
 
Аватар для pets

Регистрация: Jun 2003
Адрес: Odessa, Ukraine
Сообщений: 93
Отправить сообщение для pets с помощью ICQ
ответ по существу...

только вот как? в этом весь вопрос...

Старый 25.01.2007, 04:54
vic_ вне форума Посмотреть профиль Отправить личное сообщение для vic_ Посетить домашнюю страницу vic_ Найти все сообщения от vic_
  № 6  
Ответить с цитированием
vic_
 
Аватар для vic_

Регистрация: Sep 2006
Адрес: Zaporozhye, Ukraine
Сообщений: 141
Тормозить будет, это надо разбить на квадраты и подсчитать преобладающий цвет для каждого. Пусть не каждый пиксел, но все равно много надо перебрать, для правдоподобия. Потом отрисовать квадраты в битмапдату, увеличить количество квадратов и повторить процедуру, и это раза четыре как минимум. А потом подсунуть настоящую картинку. Решение в лоб. Может можно придумать что нибудь изящнее.

Старый 25.01.2007, 06:57
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 7  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Я делал это вот так в ActionScript 3.0

class Pixilate.as
Код:
package effects
{
	import flash.events.EventDispatcher;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	import flash.display.BitmapData;
	import flash.filters.BlurFilter;
	import flash.filters.BitmapFilterQuality;
	import flash.geom.Point;
	import flash.display.Bitmap;
	import flash.geom.Rectangle;

	public class Pixilate extends EventDispatcher
	{		
		/**
		 * @private
		 */
		protected var _originalImage:BitmapData;
		/**
		 * @private
		 */
		protected var _bluredImage:BitmapData;
		/**
		 * @private
		 */
		protected var _currentStep:uint;
		/**
		 * @private
		 */
		protected var _totalSteps:uint;
		
		public function Pixilate(originalImage:BitmapData)
		{
			_originalImage = originalImage;
		}
		
		public function get originalImage():BitmapData
		{
			return _originalImage;
		}
		
		public function createPixelatedImage(pixelSize:uint):BitmapData
		{
			var result:BitmapData = new BitmapData(_originalImage.width, _originalImage.height);
			
			var vPixelsAmmount:uint = Math.ceil(result.height/pixelSize);
			var hPixelsAmmount:uint = Math.ceil(result.width/pixelSize);
			var halfPixel:Number	= Math.ceil(pixelSize/2);
			
			for (var h:uint = 0; h < vPixelsAmmount ; h++)
			{
				for (var w:uint = 0; w < hPixelsAmmount ; w++)
				{
					trace("drawing");
					var currentX:Number = w*pixelSize;
					var currentY:Number = h*pixelSize;
					
					var color:uint = _originalImage.getPixel32(currentX+halfPixel, currentY+halfPixel);
					var rect:Rectangle = new Rectangle(currentX, currentY, pixelSize, pixelSize);
					
					trace(color);
					
					result.fillRect(rect, color);
				}
			}
			
			return result;
		}
		
		/**
		 * @private
		 */
		protected function blurImage(blurCoof:uint):void
		{
			var blur:BlurFilter = new BlurFilter(blurCoof, blurCoof, BitmapFilterQuality.LOW);
			_bluredImage = new BitmapData(_originalImage.width, _originalImage.height);
			_bluredImage.draw(_originalImage);
			_bluredImage.applyFilter(_bluredImage, _originalImage.rect, new Point(0, 0), blur);
		}
	}
}
class PixilateExample.as
Код:
package {
	import flash.display.Sprite;
	import flash.display.Loader;
	import flash.net.URLRequest;
	import flash.events.Event;
	import flash.display.BitmapData;
	import flash.display.DisplayObject;
	import flash.display.Bitmap;
	import flash.display.LoaderInfo;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import effects.Pixilate;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	import flash.events.MouseEvent;

	public class PixilateExample extends Sprite
	{
		private var pixilate:Pixilate;
		private var bitmap:Bitmap;
		
		public function PixilateExample()
		{
			initStage();
			
			var loader:Loader = new Loader();
				loader.load(new URLRequest("3.jpg"));
				loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
				
			stage.addEventListener(MouseEvent.CLICK, startPixilate);
		}
		
		private function onImageLoaded(event:Event):void
		{			
			var image:DisplayObject = (event.target as LoaderInfo).loader.content;
			
			var bmpd:BitmapData = new BitmapData(image.width, image.height);
				bmpd.draw(image);
			
			pixilate = new Pixilate(bmpd);
			bitmap = addChild(new Bitmap()) as Bitmap;
			bitmap.bitmapData = bmpd;
		}
		
		private function startPixilate(event:MouseEvent):void
		{
			if(pixilate != null)
			{
				var timer:Timer = new Timer(20, 10);
					timer.addEventListener(TimerEvent.TIMER, onTimerTick);
					timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
					timer.start();
			}
		}
		
		
		private function onTimerTick(event:TimerEvent):void
		{
			trace("tick");
			bitmap.bitmapData = pixilate.createPixelatedImage((event.target as Timer).currentCount*3);
		}
		
		private function onTimerComplete(event:TimerEvent):void
		{
			
		}
		
		private function initStage():void
		{
			stage.align 	= StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
		}
	}
}
Pixilate.zip
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 25.01.2007, 09:19
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Набросок
Код:
import flash.display.BitmapData;
import flash.geom.*;
//// сама функция
function mosaic (mcDraw:MovieClip, mcIn:MovieClip, mcOut:MovieClip, cellSize:Number) {
	cellSize = Math.floor (cellSize);
	if (cellSize > 0) {
		bmp.fillRect (bmp.rectangle, 0x00000000);
		mcOut._xscale = mcOut._yscale = 100;
		mcIn._xscale = mcIn._yscale = 100 / cellSize;
		bmp.draw (mcDraw);
		mcOut._xscale = mcOut._yscale = 100 * cellSize;
		mcIn._xscale = mcIn._yscale = 100;
	}
}
//// объекты
var bmp:BitmapData = new BitmapData (200, 200, true, 0x0);
var mc:MovieClip = this.createEmptyMovieClip ("mc", this.getNextHighestDepth ());
var mcImage:MovieClip = this.createEmptyMovieClip ("mcI", this.getNextHighestDepth ());
var mcGradient:MovieClip = mcImage.createEmptyMovieClip ("mc", 0);
//// вспомогательная ерунда
mc.attachBitmap (bmp, 0);
mcI._x = mcI._y = 100;
mc._x = 400;
mc._y = 100;
with (mcGradient) {
	colors = [0x000000, 0xFF0000];
	fillType = "linear";
	alphas = [100, 100];
	ratios = [0, 0xFF];
	matrix = new Matrix ();
	matrix.createGradientBox (200, 200, Math.PI / 4, 0, 0);
	beginGradientFill (fillType, colors, alphas, ratios, matrix);
	moveTo (0, 0);
	lineTo (0, 200);
	lineTo (200, 200);
	lineTo (200, 0);
	lineTo (0, 0);
	endFill ();
}
//// вызываем функцию
var cx:Number = 1;
setInterval(function () {
	mosaic (mcImage, mcGradient, mc, cx++);
}, 500);
mosaic (mcImage, mcGradient, mc, cx++);
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 25.01.2007, 11:38
_sestra_ вне форума Посмотреть профиль Отправить личное сообщение для _sestra_ Найти все сообщения от _sestra_
  № 9  
Ответить с цитированием
_sestra_
 
Аватар для _sestra_

Регистрация: Dec 2005
Сообщений: 219
Отправить сообщение для _sestra_ с помощью ICQ Отправить сообщение для _sestra_ с помощью Skype™
По умолчанию Pixel.fla

Пользовался этим неоднократно, как помне удобно.
Вложения
Тип файла: rar pixel.rar (19.6 Кб, 114 просмотров)
__________________
Счастье - это хорошее здоровье и плохая память

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:22.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.