ASP でサムネイルをしたいのか、そのキーワードでの検索から私のブログに訪れる方が週に何人もいらっしゃいます。
今日はそんな方のために、ASPX コード展開を載せてみます。
このまま ASPX に張り付けても動きませんが、コードを読んで頂いて、Webでキーワードを検索してください。多少役には立つかと思います。
あくまでヒントとして掲載していますので、バグがあっても怒鳴りこまないでくださいね。
Dim thumbWidth As Integer
Dim thumbHeight As Integer
Dim callback As System.Drawing.Image.GetThumbnailImageAbort
Dim callbackData As IntPtr
Dim OrgImage As Object
Dim DestImage As Object
'
Dim CONVERT_SIZE As Integer
Dim CONVERT_RC As Single
Dim CONVERT_MODE As Single
CONVERT_SIZE = 150
ASPX_FILENAME = "DEMO.jpg"
ASPX_INDEX_FILENAME = "DEMO_thumb.jpg"
OrgImage = System.Drawing.Image.FromFile(ASPX_FILENAME)
CONVERT_RC = CONVERT_SIZE / OrgImage.Width
thumbWidth = CONVERT_SIZE
thumbHeight = OrgImage.Height * CONVERT_RC
DestImage = OrgImage.GetThumbnailImage(thumbWidth, thumbHeight, callback, callbackData)
DestImage.Save(ASPX_INDEX_FILENAME, System.Drawing.Imaging.ImageFormat.Jpeg)
'
OrgImage.Dispose()
DestImage.Dispose()
ASPX ではなく、APS のみで動かしたいという声もよく聞きますが、私は ASP での製作(COM+など)はエラーリスクが大きいので諦め、ASP で乱数による引き渡し一時キーを生成し、ASPX へのセッション情報はDBを介して引き渡しています。
ASP --> ASPX --> ASP
このような流れを確立しておけば、相互に行き来できますので、後々便利になります。
ASPX との相互乗り入れは silverlight の利用にも通じるところがあり、テクニカルな部分を組み込む事には意義があると思います。
多少、参考になれば幸いです。