前回、画像(JPEG)から位置情報を取得 しましたので、今回はWebサイトにアップロードした画像から位置情報を取得します。
1.フォーム(aspx)の作成
ファイル選択用の FileUpload コントロールと送信用の Button コントロールを1個づつ配置し、form の enctype に multipart/form-data を指定したaspxを作成します。
サンプルコード(fileupload.aspx)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="getpos.aspx.cs" Inherits="gpsimage_getpos" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server" enctype="multipart/form-data" method="post">
<div>
<p><asp:FileUpload ID="FileUpload1" runat="server" /></p>
<p><asp:Button ID="btnUpload" runat="server" Text="アップロード" EnableViewState="false" onclick="btnUpload_Click" /></p>
<asp:TextBox ID="textBox1" runat="server" Columns="40" Rows="6" TextMode="MultiLine"></asp:TextBox>
</div>
</form>
</body>
</html>
2.プログラム(fileupload.aspx.cs)の作成
FileUpload コントロール の InputStream を使用して、Bitmap クラスを作成します。
protected void btnUpload_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
HttpPostedFile postFile = Request.Files["FileUpload1"];
if ((postFile.ContentType.Equals("image/jpeg", StringComparison.OrdinalIgnoreCase)) ||
(postFile.ContentType.Equals("image/pjpeg", StringComparison.OrdinalIgnoreCase)))
{
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(FileUpload1.PostedFile.InputStream);
// --------------------------------------------------------
// 緯度経度を取得する処理
// --------------------------------------------------------
// 保存する場合は、SaveAs を使用します。
string fn = @"c:\temp\upload\" + FileUpload1.FileName;
FileUpload1.SaveAs(fn);
}
}
}
※「緯度経度を取得する処理」の部分は、 画像(JPEG)から位置情報を取得 を参考にしてください。
こんな感じで取得できます。
