Hatena::ブログ(Diary)

genEx::基本的にASP.net このページをアンテナに追加 RSSフィード

2011-02-26

波ダッシュ・全角チルダ にハマった・・・

どーも。超お久しぶりです。

例のTWツールにコメントいただいてましたが

さっきみました(汗

大変申し訳ないorz

ひとまず時間あれば何とかしてみますー

(メモリから読み込みはたぶんムリ・・・


そしてタイトルの件。

とある場所から全国の駅データを落として

MSSqlServer2008に突っ込んでやったところ・・・

なんということでしょう

たとえばJR線(博多八代)みたいな

〜←こいつが見た目上は「〜」なんだけど「〜」じゃないらしく

ブラウザに吐き出してやると「?」になってました。。。

というわけで早速調査!

どうやら「〜」には 波ダッシュ(Unicode:301C)と全角チルダ(Unicode:FF5E)ってのが

あるらしく、前者の文字コードDBに突っ込まれるとだめっぽいです。

んで、SQLで単純に「〜」含むやつを抽出して〜ってやると・・・できないorz

キーボードから入力できるのはどうも後者の全角チルダのようです。

というわけで、WHERE に like '%'+NCHAR(12316)+'%' で拾えましたので

後々考えて NCHAR(65374) に更新かけて一件落着っと。

2010-11-04

auでロングストリーミングしてみる

個人的にはまったのでメモ。


とりあえずffmepgでもなんでもいいので1.5MBぐらいまでの

3g2ファイル作る。詳しいフォーマットは携帯動画変換君辺りで。


次にMP4Boxで -add input.3g2 -brand 3g2a -new output.mp4


出力の拡張子mp4にするのがミソ


その後、無理やり拡張子を3g2に戻してあげれば


とりあえずロングストリーミング対応なファイルの完成



後はでぃーいーぶいえ・・・というおまじないをかけて

ファイルサイズをきちんと指定してあげたObjectタグで

貼ってあげれば、まあ結構簡単にできました。

2009-11-13

携帯サイト ソフトバンクのみフォームで日本語送信すると文字化ける・・・

というような状況におちいったのですが、

以前にも似たようなことがあったなーっと思い

過去の遺物をあさってとりあえず解決。

また忘れそうなのでメモ


web.config に 以下の一行を追加っと。


<globalization requestEncoding="shift-jis" responseEncoding="shift-jis" enableBestFitResponseEncoding="true"/>


たぶんこれだけで解決するはず。


なぜか utf8 とかで送信してくれるので強制的に Shift_JIS に。

これにて一件落着。

2009-09-03

透過PNGを合成してGIFを吐き出してみる(FreeImageNet) 

FreeImageNetを拾ってくる

Site : The FreeImage Project

http://freeimage.sourceforge.net/download.html


展開して Bin ディレクトリに

FreeImageNET.dll

FreeImage.dll

を突っ込む


とりあえずページ先頭に以下のコードを追加

<%@ Assembly Name="FreeImageNet" %>

合成処理を用意

'/// infile で指定した画像を Drawing.Graphicsに描画
Public Function ImgOverWrite(byval infile as string, _
                             byref g as Drawing.Graphics)

    '/// 画像ファイルのロック防止の為、ReadでFileStreamを作成
    Dim fs as New IO.FileStream(infile, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)

    '/// 作成したFileStreamからBitmapを作成
    dim bmp As New Drawing.Bitmap(fs)

    '/// Drawing.Graphicsに描画
    g.DrawImage(bmp, 0, 0, bmp.Width, bmp.Height)

    '/// 後処理
    fs.Close()
    fs.Dispose()
    bmp.Dispose()
    	
End Function

画像読み込んで合成してバイナリ吐き出す


'/// 土台となるBitmapを作成(70x150px)
Dim basebmp As New Drawing.Bitmap(70, 150)

'/// 土台BitmapのGraphicsを取得
Dim g as Drawing.Graphics
g = Drawing.Graphics.FromImage(basebmp)

'/// 白で塗りつぶす
g.Clear(Drawing.Color.White)

'/// 土台に画像を上書き
ImgOverWrite("hogehoge.png", g)
ImgOverWrite("fugafuga.png", g)

'/// 出来上がった画像をMemoryStreamに読み込む
Dim ms As New System.IO.MemoryStream
basebmp.save(ms, Drawing.Imaging.ImageFormat.Png)

'/// FreeImageAPIを使ってPNG→GIFに変換
Dim dib As FreeImageAPI.FIBITMAP

'/// GIFを格納するMemoryStream
Dim ms_Gif As Stream.IO.MemoryStream

'/// 前で保存したMemoryStreamからFIBITMAPを作成
dib = FreeImageAPI.FreeImage.CreateFromBitmap(New Drawing.Bitmap(ms))

'/// GifとしてMemoryStreamに吐き出し
FreeImageAPI.FreeImage.SaveToStream(dib, ms_Gif, FreeImageAPI.FREE_IMAGE_FORMAT.FIF_GIF)

'/// ContentTypeをimage/gifに変更して書き出し
Response.Clear()
Response.ContentType = "image/gif"
Response.BinaryWrite(ms_Gif.GetBuffer)

'/// 後始末
ms_Gif.Close()
FreeImageAPI.FreeImage.Unload(dib)
dib.SetNull()

ms.Close()
basebmp.Dispose()

標準のBitmapで合成してGIFに書き出したらハーフトーンが出て酷かったからメモ