ラベル image の投稿を表示しています。 すべての投稿を表示
ラベル image の投稿を表示しています。 すべての投稿を表示

月曜日, 7月 20, 2009

hysyskとかmrrychとかいい加減にしよう

myfye.net
丸尾君の新作。おんぶにだっこのだっこ担当(クライアントサイド)。おんぶ担当(サーバーサイド/normal version)はnajimi.jpのyamakk。

撮った写真がカメラからそのままネットにアップロードされ、撮影の間隔が12秒以内の場合、指定された濃度で自動的に乗算合成されて一枚になります。

このような仕組みが、どう撮るものに影響してくるのか楽しみです。

HTMLからSWFに値を渡す方法、スライダーなどのユーザーインターフェース、ビットマップの操作など色々勉強になりました。

最近読み始めた「ActionScript 3.0デザインパターン」の内容を習得できればもっと綺麗に書き直せそうです。
Foundation Actionscript 3.0 Image Effect」も買ったので今後のバージョンアップに活かせそうです。

日曜日, 11月 02, 2008

non-formatize

六本木のTSUTAYAでお洒落なデザイン本などを眺めていたら発見したnon-formatの作品集。
これの左上。
で大体やりたいことはわかると思うけど、やってみました。

輝度が低い、暗いとこは振幅を大きくして、線が重なることで濃くしてある。だけ。
オリジナルに近づけるにはもうちょっと詰める必要あるな。元画像の作り方にも左右されると思うけど。

モナリザの画像探してる時に見つけたこんなんもある。錯視とかもっと勉強したい。

トラック毎に切り分けて音で聴けるようにしたいところだけど、それはまたいずれ。
最新版(0154)だとminim音鳴らないし。
Processing 1.0 (BETA) - Minim problem... I can't hear ANYTHING

flashでもできるな。BitmapDataクラスでgetPixel()して、値をSampleDataEventに渡す感じだろうか(地味に昨日flashでsine wave鳴らすの直した)。ファイル書き出しもできるからwaveファイルとかも作れるし(miztにソースいただきました)。

ビジュアルからインスパイアされて誰にでも説明できる方法で音作りに持っていけるようになったのはよかったよね。

scriptographerでやりたい。

PImage img;
int x = 0;
int y = 0;
int imgW;
int imgH;
float val;
float amp;

background(255);
colorMode(HSB, 255);
img = loadImage("lisa.jpg");
imgW = img.width;
imgH = img.height;
size(imgW*2, imgH);
image(img, 0, 0);

loadPixels();
for(y = 0; y < imgH; y++) {
for(x = 0; x < imgW; x+=5) {
val = brightness(pixels[y*imgW*2+x]);
amp = (255-val)*0.05;
stroke(100, amp+100);
line(imgW+x-amp, y, imgW+x+amp, y);
}
}
saveFrame("nonformatize.jpg");

火曜日, 7月 22, 2008

using flickr api 01

flickrから画像を取得する方法。提供されてるAPIを使う。使用の際に必要となるAPIキーはここで取得。
http://www.flickr.com/services/api/keys/

よく使われてるのはこのライブラリらしい。
as3flickrlib - Google Code

ライブラリ使わなくてもある程度は自分でできる。
[Think IT] 第4回:外部API(Flickr)を試す! (1/3)

MVCモデルを使ってとか、僕にはまだわかりません。
下にあるコードは手っ取り早く使う場合とか、前段階として。
慣れだと思うけど、一回散らかさないと片付け方がわからない。

とりあえず、ブラウザに直接URLを入力してみると、xmlが返ってくる。
例えば、「test」というキーワードで全文検索して10件取得した1ページ目だったらこんな感じ(見やすいように改行入れてますが本来は一行です)。

http://api.flickr.com/services/rest/
?method=flickr.photos.search&api_key=取得したAPIキー
&text=test&page=1&per_page=10


結果。


他のを試したければここに出てるargumentsから選んで&でつないで=で代入すればいい。
&tags=music
とか。
Flickr Services: Flickr API: flickr.photos.search

ここまでくれば、あとは普通にxmlの処理するのと一緒。
SSAW07 » 第5回:ActionScript 3.0応用 I - 外部イメージの読み込み

Make your own Flickr search engine with Flash and AS3 | The Tech Labs

thinkitにも書かれているように、crossdomain.xmlをロードするのを忘れずに。

さらに、flash CS3とかで動かしてるブルジョアは大丈夫かも知れませんが、普通にflash player落としてXcodeとかで開発してる場合、セキュリティのエラーが出ると思う。

FlashPlayerTrustというフォルダを作り、Macintosh HD/Library/Application Support/Macromedia/に保存。その中にcfgファイルを作る(名前は何でもいいそうです。とりあえずmm.cfgとかにしておく)。
cfgファイルに目的のswfやフォルダのパスを設定する。こういう話題はどこに書いてあるかというと、ここからダウンロードできるpdfです。そんなん知らんよね。
Adobe - Developer Center : White paper: Adobe Flash Player 9 security

これもどうやって辿り着けたのか思い出せないが、とにかくここのドキュメントはダウンロードしていつでも参照できるようにしておく。
Adobe Flex resources

testで全文検索した結果から10枚表示。マウスクリックで表示順変更。
YOUR API KEYの部分を取得したAPIキーと差し替えないと実行した時にエラーが出て表示されません。

package {
import flash.display.MovieClip;
import flash.display.Stage;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.display.Bitmap;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.display.Loader;
import flash.system.LoaderContext;

public class TestFlickr extends MovieClip {
private var APIkey:String;
private var text:String;
private var searchURL:String;
private var startPage:uint = 1;
private var pageValue:uint = 10;

public function TestFlickr() {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(MouseEvent.CLICK, onMouseClick);
init();
}

private function init():void {
//your API key
APIkey= "YOUR API KEY";
//search word
text = "test";

search();
}

private function search():void {
while(this.numChildren > 0){
this.removeChildAt(this.numChildren-1);
}
setSearchURLString();
}

private function setSearchURLString():void {
var baseURL:String = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=" + APIkey;
searchURL = baseURL + "&text="+ text + "&page=" +startPage + "&per_page=" + pageValue;
trace(searchURL);
startXMLLoad();
}

private function startXMLLoad():void {
var req:URLRequest = new URLRequest(searchURL);
var XMLLoader:URLLoader = new URLLoader();
XMLLoader.addEventListener(Event.COMPLETE, onXMLLoadComplete);
XMLLoader.load(req);
}

private function onXMLLoadComplete(e:Event):void {
var imgLoader:URLLoader = URLLoader(e.target);
var xmlData:XML = XML(imgLoader.data);

var xmlList:XMLList = xmlData.photos.photo;
for(var i:uint = 0; i < pageValue; i++) {
var farm:String = xmlList[i].@farm;
var server:String = xmlList[i].@server;
var id:String = xmlList[i].@id;
var secret:String = xmlList[i].@secret;
var imgURL:String = "http://farm" + farm + ".static.flickr.com/" + server + "/" + id + "_" + secret +".jpg";
trace("URL:" + imgURL);
var imgReq:URLRequest = new URLRequest(imgURL);
var loader:Loader = new Loader();

loader.contentLoaderInfo.addEventListener(Event.INIT, loadImageInit);
loader.load(imgReq, new LoaderContext(true));
}
}

private function loadImageInit(e:Event):void {
var bitmap:Bitmap = e.target.content;
addChild(bitmap);
}

private function onMouseClick(e:MouseEvent):void {
setChildIndex(getChildAt(0), numChildren - 1);
}
}
}

月曜日, 9月 03, 2007

ppm

画像研究入門してみた。色々入門ばっかりしてる。入門のプロになりたい。
画像研究入門

portable pixelmapて名前がいい。

とりあえずCでppm形式の画像を作ってみたはいいが、開けないのでImageMagickを入れる。
Happy KARATE Mac OSX Tiger へのImage::Magick インストール

相変わらず不安になる文字がずらーっと。
unixにも慣れていきたい。

convert filename.ppm filename.gif

でgifに変換。

ToyViewerでいい気もする。
ToyViewer for Mac OS X

cのソースを元にpythonでsketch。200*200ピクセルの画像で、1ピクセルにそれぞれr g bの値が入るので3をかけてる。最後に改行入れないとfile errorになるってとこにはまった。多次元リストでうまいことやればもっと色々描けるはず。要勉強。


size = 200*200*3
try:
f = open('test.ppm', 'wb')
f.write('P6\n200 200\n255\n')
for i in range(0, size):
f.write(chr(i%255))
f.write('\n')
f.close()
print "Done."
except:
print "file error"