標籤

C# (4) asp.new (3) R (2) Delphi (1) Dos (1) english (1) music (1)

2012年12月11日 星期二

學習資源

線上課程
C# 線上中文資源Kaiching Chang

經典好書
Delphi

DELPHI 2006程式設計範例教本(含資料庫)| 作    者:洪國勝 |出版社:全華圖書股份有限公司|出版日:2007/02/01 | 中興圖書

2012年11月27日 星期二

Asp.net和C#:檔案上傳元件

Asp.net和C#:檔案上傳元件
最常見的為Visual Studio內建的FILEUPLOAD和外卦的SWFUPLOAD。
由於本人開發環境是Visual Studio 2005 ( .NET Framework 2.0),
在此環境下:
一個FILEUPLOAD一次只能上一個檔案(較新的Visual Studio 己可以次上傳多個),
而SWFUPLOAD一次可以上傳多個檔案(但不是內建,設定麻煩)。
因此在這裡的SWFUPLOAD就比FILEUPLOAD強一些。

SWFUPLOAD:由SWF和JS完成檔名LOOP的上傳動作。
1.在 SwfUpload 官網中的External links/Demos中可以看到php下SWFUPLOAD的範例
2.在Featured/Downloads下可下載asp.net C#的範例,範例為產生縮圖。
若要要有上傳的動做需自行手寫,這就要看說明書的。
3.說明書:SWFUpload 使用详解
//upload.aspx.cs // Get the data
      HttpPostedFile jpeg_image_upload = Request.Files["Filedata"];
      string file_path = Server.MapPath("~/upload/");
      if (!Directory.Exists(file_path)) { Directory.CreateDirectory(file_path); }
      Request.Files["Filedata"].SaveAs(file_path + Request.Files["Filedata"].FileName);//存圖

http://blog.csdn.net/lfp0202/article/details/5800745
SWFUpload V2.2.0 说明文档
SWFUpload v2.2.0.1 中文帮助手册

SWFUpload 英文说明文档
http://demo.swfupload.org/Documentation/
http://www.dotblogs.com.tw/puma/archive/2008/07/16/4504.aspx

http://www.cnblogs.com/hinroe/archive/2011/01/18/1938738.html http://edu.save95.cn/index.php/video/index/14978
SWFUpload 未經定義
http://yrbrlono.blogspot.tw/2011/06/swfupload.html http://www.blueshop.com.tw/board/FUM20041006161839LRJ/BRD200712191119337ET/1.html http://niunan.iteye.com/blog/1343553
http://blog.niunan.net/show.php?id=364
http://sholfen.pixnet.net/blog/post/38230094-%E5%A4%9A%E6%AA%94%E6%A1%88%E4%B8%8A%E5%82%B3%EF%BC%9A%E4%BD%BF%E7%94%A8swfupload
http://topic.csdn.net/u/20100406/15/347649c5-8b74-4c2d-95b8-ec931a666a89.html

http://www.dotblogs.com.tw/chhuang/archive/2008/02/23/1093.aspx
http://chainchung.pixnet.net/blog/post/17177164-%E7%B6%B2%E8%B7%AF%E7%9B%B8%E7%B0%BF%E5%AF%A6%E4%BD%9C%E6%96%B9%E5%BC%8F
SWFUpload使用指南
官網
https://code.google.com/p/swfupload/wiki/v250Beta1

3.
<asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click" Text="Save Select Images" Width="150px" />

xmlns="http://www.w3.org/1999/xhtml"
    protected void btnSave_Click(object sender, EventArgs e) {
            if (Session["file_info"] != null) {
                  List<Thumbnail> thumbnails = Session["file_info"] as List<Thumbnail>;
                  string UploadPath = Server.MapPath("upload/");
                  foreach (Thumbnail img in thumbnails) {
                                    FileStream fs = new FileStream(UploadPath + img.ID + ".jpg", FileMode.Create);
                                     BinaryWriter bw = new BinaryWriter(fs);
                                    bw.Write(img.Data); bw.Close(); fs.Close();
                   }
                   Session.Clear();
                  }
}
=== FileUpload ==========

.aspx page
   1: <form id="form1" runat="server">

   2: <div>

   3:     <asp:FileUpload ID="FileUpload1" runat="server" /><BR>

   4:     <asp:FileUpload ID="FileUpload2" runat="server" /><BR>

   5:     <asp:FileUpload ID="FileUpload3" runat="server" /><BR>

   6:     <asp:FileUpload ID="FileUpload4" runat="server" /><BR>

   7:     <asp:FileUpload ID="FileUpload5" runat="server" /><BR>

   8:     <asp:FileUpload ID="FileUpload6" runat="server" /><BR>

   9:     <asp:FileUpload ID="FileUpload7" runat="server" /><BR>

  10:     <asp:FileUpload ID="FileUpload8" runat="server" /><BR>

  11:     <asp:FileUpload ID="FileUpload9" runat="server" /><BR>

  12:     <asp:FileUpload ID="FileUpload10" runat="server" /><BR>

  13:     <asp:Button ID="Button1" runat="server" Text="上傳(總合需小於10MB)" OnClick="Button1_Click"  style="width: 150px"/>   

  14:       <input id="btnCancel" type="button" value="取消" onclick="parent.closePopWindow();" style="width: 55px" class="submit_b" />

  15: >

  16:     <asp:Label ID="Label1" runat="server" Text=""></asp:Label>  

  17:     

  18: </div>

  19: </form>

.cs page


   1: protected void Button1_Click(object sender, EventArgs e) {

   2:     HttpPostedFile myFL;

   3:     Label1.Text = "";

   4:     string Archive = Request.QueryString["Archive"].ToString();

   5:     string savePath = Server.MapPath("~/") + "Files/" + Archive + "/";

   6:  

   7:     //建立物件案例。(取得目前的工作目錄、建立、移動、刪除、檢查是否存在和顯示資料夾清單)

   8:     DirectoryInfo objDirectoryInfo = new DirectoryInfo(savePath);

   9:     //如果該目錄不存在時。 //新增目錄。

  10:     if (!objDirectoryInfo.Exists) objDirectoryInfo.Create();

  11:  

  12:  

  13:     for (int i = 0; i < ((int)Request.Files.Count); i++) {

  14:         myFL = Request.Files[i];

  15:  

  16:         if (myFL.ContentLength > 0) {

  17:             ////----透過下面的方法,只取出上傳檔案的檔名。

  18:             string UploadFileName = Path.GetFileName(myFL.FileName);

  19:             //---------------------------------------------------------------------------------------------

  20:             Label1.Text = "<br>第" + (i + 1) + "檔案:" + UploadFileName + "上傳中...";

  21:  

  22:             //—註解:「目錄路徑」與「檔案名稱」,兩者都要!

  23:             myFL.SaveAs(savePath + UploadFileName);

  24:  

  25:         }

  26:     }

  27:     Label1.Text = "<br>上傳結束";

  28:     string script1 = "<script language=\"javascript\" type=\"text/javascript\">parent.__doPostBack('','RELOAD');</script>";

  29:  

  30:     Response.Write(script1);

  31:  

  32: }





參考:
FileUpload:Mis例子、錯誤(斷線)、斷線修正(web.config)其他
ASP.NET 檔案上傳的兩三事
ASP.NET』同時多檔案上傳 - 使用 FileUpload 元件


===NeatUpload
[ASP.NET] 檔案上傳 - NeatUpload - 顯示上傳比例 (ProgressBar)

2012年11月13日 星期二

StirMark使用說明:(2012/11/13)

StirMark使用說明:(2012/11/13)
下載stirmark benchmark 4.0:我是下載binary and C/C++ source code並解壓縮。

目錄說明:
/ Bin/ Benchmark/ the benchmarking tool itself
Libraries/ libraries sent by users
Profiles/ profiles are text configuration files describing the test to be applied (one profile per application and per 'robustness' level)
Media/ Input/ Images/ Set1/ 輸入的影像放這裡
Set2/

MyFolder/
...
Output/ (Same substructure is created for input. ) 輸出影像的資料夾
目錄說明:參考王旭正、柯建萱、ICCL資訊密碼暨建構實驗室, 資訊媒體安全:偽裝學與數位浮水印,初版,台北縣汐止市,博碩文化股份有限公司,2007年8月。page 236):

Step 1.將嵌入浮水印的影像(watermarked image)放:Media/ Input/ Images/ Set1/
Step 2.到Profiles/下找SMBsettings.ini:改攻擊參數。可不改,用預設。
Step 3.到Bin\Benchmark\下找StirMark Benchmark.exe,點二下。此為執行檔

Final Step:執行後,所有攻擊後的圖在:Media/ Output/ Images/ Set1/中。



stirmark benchmark 4.0 破壞程度(小) ---> 破壞程度(大) example(預設) 說明 問題使用狀況
Test1=Test_PSNR Strength of the watermark embedding
Test2=Test_EmbedTime ; Number of embeddings with random key per media ; This is used to compute the average embeding and extraction time
Test3=Test_AddNoise 0 -> 100 list=5
Test4=Test_JPEG 100 -> 0 list=5 JPEG_5:等級為5的JPEG壓縮。(等級低,壓縮比高)。 OK
Test5=Test_MedianCut 3 5、... the odd number < min(width px, height px) list=3 中位數濾波攻擊。MEDIAN_3:採用3X3的遮罩。 OK
Test6=Test_ConvFilter1(Gaussian filtering)
Convolution
filter1 = 3 3 9 1 2 1 2 4 2 1 2 1 和高斯函數做convolution。也就是該點像素以高斯函數做為附近像素值的加權平均之權重,加權後的均值取代原該點像素。所以有平滑、模糊的效果。
3的遮罩為[1 2 1;2 4 2;1 2 1]。
參考:我+單元五、空間濾波
平滑...為什麼我的會變白~~~*2OK
Test6=Test_ConvFilter2(sharpening) filter2 = 3 3 9 0 1 0 1 5 1 0 1 0 3的遮罩為[0 1 0;1 5 1;0 1 0]。
參考:WEB化的Watermark安全性
銳化...為什麼我的會變黑~~~*2OK
Test7=Test_SelfSimilarities 使用RGB色系,RGB通道,交換攻擊
Test8=Test_RemoveLines
Test9=Test_Cropping 100 -> 0 list=50 取中間部分。50:表示取下中間長寬50%做為測試 OK
Test10=Test_Rescale 100 -> 0 or infinite list=10 縮放百分比:10% OK
Test11=Test_Rotation 0 -> 360 list=0.1 逆時針轉0.1度 OK
Test12=Test_RotationCrop
Test13=Test_RotationScale
Test14=Test_Affine Affine
 Test15=Test_SmallRandomDistortions
Test16=Test_LatestSmallRandomDistortions
參數說明表



PS:
*1:StirMark出來的圖檔是BMP格式。但進去格式不分。
*2:Test_ConvFilter用法
[Test_ConvFilter] ; filter coefficients
; first two numbers correspond to width and height
; second number is division factor

; Gaussian filtering
  filter1 = 3 3 16 1 2 1 2 4 2 1 2 1
;filter1 =mask的寬 mask的高 除數 1 2 1 2 4 2 1 2 1
;這裡除數取1+ 2 +1+ 2+ 4+ 2+ 1+ 2+ 1=16

; sharpening
filter2 = 3 3 1 0 -1 0 -1 5 -1 0 -1 0

; edge
filter3 = 3 3 1 0 -1 0 -1 4 -1 0 -1 0

2012年11月9日 星期五

Asp.net和C#:檔案上傳元件

Asp.net和C#:檔案上傳元件
==============SwfUpload==============
//upload.aspx.cs // Get the data
      HttpPostedFile jpeg_image_upload = Request.Files["Filedata"]; 
      string file_path = Server.MapPath("~/upload/");
      if (!Directory.Exists(file_path)) { Directory.CreateDirectory(file_path); }
      Request.Files["Filedata"].SaveAs(file_path + Request.Files["Filedata"].FileName);//存圖

http://blog.csdn.net/lfp0202/article/details/5800745
SWFUpload V2.2.0 说明文档
http://www.leeon.me/upload/other/swfupload.html
SWFUpload 英文说明文档
http://demo.swfupload.org/Documentation/
http://www.dotblogs.com.tw/puma/archive/2008/07/16/4504.aspx

http://www.cnblogs.com/hinroe/archive/2011/01/18/1938738.html http://edu.save95.cn/index.php/video/index/14978
SWFUpload 未經定義
http://yrbrlono.blogspot.tw/2011/06/swfupload.html http://www.blueshop.com.tw/board/FUM20041006161839LRJ/BRD200712191119337ET/1.html http://niunan.iteye.com/blog/1343553
http://blog.niunan.net/show.php?id=364
http://sholfen.pixnet.net/blog/post/38230094-%E5%A4%9A%E6%AA%94%E6%A1%88%E4%B8%8A%E5%82%B3%EF%BC%9A%E4%BD%BF%E7%94%A8swfupload
http://topic.csdn.net/u/20100406/15/347649c5-8b74-4c2d-95b8-ec931a666a89.html

http://www.dotblogs.com.tw/chhuang/archive/2008/02/23/1093.aspx
http://chainchung.pixnet.net/blog/post/17177164-%E7%B6%B2%E8%B7%AF%E7%9B%B8%E7%B0%BF%E5%AF%A6%E4%BD%9C%E6%96%B9%E5%BC%8F

官網
https://code.google.com/p/swfupload/wiki/v250Beta1

3.
<asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click" Text="Save Select Images" Width="150px" />

xmlns="http://www.w3.org/1999/xhtml"
    protected void btnSave_Click(object sender, EventArgs e) {
            if (Session["file_info"] != null) {
                  List<Thumbnail> thumbnails = Session["file_info"] as List<Thumbnail>; 
                  string UploadPath = Server.MapPath("upload/"); 
                  foreach (Thumbnail img in thumbnails) { 
                                    FileStream fs = new FileStream(UploadPath + img.ID + ".jpg", FileMode.Create);
                                     BinaryWriter bw = new BinaryWriter(fs); 
                                    bw.Write(img.Data); bw.Close(); fs.Close();
                   }
                   Session.Clear(); 
                  }
}
====================================
FileUpload:Mis例子、錯誤(斷線)、斷線修正(web.config)其他
ASP.NET 檔案上傳的兩三事

2012年9月17日 星期一

Asp.net和C#取值:(GridView...)在CS中取ASPX中的值、在ASPX中取CS中的值。

取值:(GridView...)在CS中取ASPX中的值、在ASPX中取CS中的值。
Of course, you can use with the simple textbox,label, etc. .
however, we are discussing how to get the value from GridView,dataList,repeater control here.
we hope to get or find the value from database by the different controls, like GridView controls...
1.取值:Request的用法
在以前asp的年代時,request用在傳遞參數時很好用。但在現在asp.net年代下,皆以CommandName and CommandArgument取代request. 除非有CommandName and CommandArgument做不到時,才用request。以下列出request用法的參考網頁:
ASP.NET 如何取得 Request URL 的各個部分
ASP.NET內抓取網址的方式一覽表(Request)
用asp.net去取得client side的javascript var 值


2.取值(Eval用法):
初學 進階
123 Subject .aspx(放 form/div/之中) .cs
+ aspx中取值 Eval的用法
在TemplateField/ItemTemplate/
Lable
<asp:HyperLink ID="lnk2" runat="server"  NavigateUrl='<%# "NewDetail.aspx?Seq="+ Eval("Seq") %>'/> bind 有"Seq"的資料表
EX:
aspx中取值 Eval的用法
在TemplateField/ItemTemplate/
<a href="History.aspx?Seq=<%# Eval("Seq") %>" >  <%# Eval("Subject") %> </a> bind 有"Seq"的資料表
aspx中取值 aspx中取值方法(函數)
aspx中用GetVar():取得cs中的值 
在ASPX中呼叫:
<%# DloadList().ToString() %>
.CS中寫Public fun.:
public string DloadList() {
            return "ABC";
    }  
+ aspx中取值(隱藏法) 在aspx中,利用hidden value,取得由.cs中產生的數值。 1.<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="javascript:Window('123'+ parent.document.form1.Hidden1.value ,300,350);">
Open</asp:HyperLink>

2.<%= hidPath.Value %> 

3.在GridView/Columns/TemplateField/ItemTemplate中的
 <asp:HyperLink ID="FName" runat="server"
Text='<%# Eval("Name") %>'
NavigateUrl='<%# "~/"+Hidden2.Value+"/" + Eval("Name") %>' Target="_blank"/>

<input id="Hidden1" type="hidden" runat="server" />
Hidden1.Value = Request.QueryString["Seq"];
aspx中取值 以Repeater為例。在aspx中,將lblDLlist文字標籤給予特別的字。 <ItemTemplate>
<asp:Literal ID="lblDLlist" runat="server"></asp:Literal>
</ItemTemplate>
      protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) {

        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
            Literal a1 = (Literal)e.Item.FindControl("lblDLlist");
            // 這邊根據你的需求,把TextBox.Text丟進DB查詢
            a1.Text = "1dfgdf23";
        }
    }
cs中取值 DataList  取得每列相對應的資料(SQL中的)。
在.cs中的DataList之ItemDataBound做設定。
在DataList1_ItemDataBound中{
 DataRowView drv = e.Item.DataItem as DataRowView;
string seq_id = drv.Row[0].ToString();//取得此列的第一個值Row[0]
}
+ 不用(可用CommandName和CommandArgument取代) cs中取值   取1值
取得每列相對應的資料(SQL中的)。
在.aspx中,利用DataKeyNames關鍵字取得每列相對應的資料(Seq in DB)。
Outcomes&Applies
在GridView時,每列加上對應的回傳值。
<asp:GridView ID="GridView1" runat="server" DataKeyNames="Seq"> protected void GridView1_RowDataBound{

 if (e.Row.RowType == DataControlRowType.DataRow) { 
Response.Writ(GridView1.DataKeys[e.Row.RowIndex].Value.ToString());
}
}
+ 不用(可用CommandName和CommandArgument取代) cs中取值 GridView 取2值
取得每列相對應的資料(SQL中的)。
在.aspx中,利用DataKeyNames關鍵字取得每列相對應的資料(Aseq, Seq in DB)。
<asp:GridView ID="GridView1" runat="server" DataKeyNames="Aseq,Seq">  protected void GridView1_RowCommand() {
if (e.CommandName == "myDelete") {
String Aseq = e.CommandArgument.ToString().Split(',')[0].Trim();
String Seq = e.CommandArgument.ToString().Split(',')[1].Trim();
}
}
cs中取值(隱藏法) cs,利用Label(hidden),取得由在Gridview中產生的數值。  <asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"...>
<Columns>
<asp:TemplateField> <ItemTemplate>
<asp:LinkButton ID="lnkViewData" CommandName="myViewData" CommandArgument='<%# Eval("Seq") %>' Text='<%# Eval("Subject") %>' runat="server"></asp:LinkButton>
</ItemTemplate> </asp:TemplateField>
</Columns>
</asp:GridView>

<asp:Label ID="lblseq" runat="server" Text="Label" Visible="False"></asp:Label>
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "myViewData") {
lblseq.Text = e.CommandArgument.ToString();
 editData(e.CommandArgument.ToString());
}
}

private void editData(string id) //EX1...看你在CS中怎麼用了...
{ string FilePath = Server.MapPath("~/") + lblseq.Text + "/"; //appendix: files
}
+ 常用 cs中取值 GridView  取2值
用CommandName、CommandArgument
在GridView/Column/asp:TemplateField/itemtemplate/: 
<asp:Button runat="server" Text="刪除" CommandName="myDelete" CommandArgument='<%# Eval("ASeq") +","+ Eval("Seq") %>' />
 protected GridView1_RowCommand()
{
if (e.CommandName == "myDelete") {
String Aseq = e.CommandArgument.ToString().Split(',')[0].Trim();
String Seq = e.CommandArgument.ToString().Split(',')[1].Trim(); 
Response.Writ( "Delete from CarrerItem where ASeq =" + Aseq); 
}
}
cs中取值 GridView  取此列的很多值,並執行。
(如編輯、列印。右例為"Aseq"和"APPLY")
 protected void GridView3_RowDataBound(object sender, GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.DataRow) {
DataRow row1 = ((DataRowView)e.Row.DataItem).Row;
LinkButton lnkPrint = (LinkButton)e.Row.FindControl("lnkPrint");
lnkPrint.OnClientClick = "Print(" + row1["Aseq"].ToString() + ","+row1["APPLY"].ToString()+");return false;";
}
}
...<head> 
<script language="javascript" type="text/javascript">
 function Print(Aseq,APPLY){
window.open("PrintPage.aspx?Aseq="+Aseq+"&APPLY="+APPLY,'','width=690,height=900,menubars=no,toolbars=no,scrollbars=yes,resizable=yes'); }

</script>
</head>
...
 <asp:GridView ID="GridView3" runat="server" OnRowDataBound="GridView3_RowDataBound"....>
<Columns>
<asp:TemplateField HeaderText="列印"> <ItemTemplate>
<asp:LinkButton ID="lnkPrint" runat="server">列印預覽</asp:LinkButton>
</ItemTemplate> </asp:TemplateField>
</Columns>
</asp:GridView>

備注:
1.BIND時,Eval中的英文是用 雙引號  Eval("ABC ")
2.GridView RowCommand, RowDataBound使用
3.asp.net中Bind和Eval的有什麼區別

參考:
ASP.NET跨頁面傳值方法
在 Repeater 中,怎么根据不同的取值
C# Eval在asp.net中的用法及作用
asp.net中Bind和Eval的有什麼區別
ASP.NET Repeater, C# Repeater
如何抓取Repeater中的控制項的值
repeater为何在后台取不到值?解决思路
datalist的手写代码更新记录的怪问题? - .NET技术 / ASP.NET
asp.net如何用repeater读取数据库内容做链接(C#)急……


2012年9月3日 星期一

Beginning
first day:
1.VS2005 和 SQL sever2008 R2的相容性(SQL Server 2008 支援VS 2005 link)
2.示範網站:台灣國際紀錄片
3.安裝SQL時,驗証選SQL混合那一項(非WINDOWS驗証)

參考用書:
[ASP.NET入門實戰班]上課流程大公開、與書本(上集 / ASP.NET專題實務)(不建議初學者使用,書中許多地方的CODE有錯誤)

以下為勘誤(如果看不懂,請參照別本書)

P10-16: <asp:GridView ID="GridView1" runat="server" DataKeyNames="id">要加 OnRowEditing="GridView1_RowEditing"
P10-18:SqlConnection Conn = new SqlConnection(WebConfigurationManager.ConnectionStrings("testConnectionString").ConnectionString);中的("testConnectionString")改為["testConnectionString"]
P10-21:什麼叫做SqlConnection Conn = new SqlConnection("資料庫連線字串,ConnectonString");

ETC...

the second day
SqlConnection用法(範例)
GridView 抓控制項的值 part2(RowDataBoundEVEN)
GridViewk在RowDataBound時,取資料庫的值可用DataKeyNames(value from cell of database data原理)




the third day
新手入門資源文章
Page.IsPostBack(判別這個Web Form是不是第一次開啟)


2012年8月21日 星期二

WaterMaker


WaterMark Icemark SignMyImage  Eikonamark(direct linkfrom Here MediaHider Digimarc(Link Chang chiga InfoProtector
成本  28441 562 網址失連 1464 第一年十幾萬,之後每年約八萬(企業版)
EMBED圖  圖(?)
 EMBED文字 文字 文字 文字
 EMBED數字 數字 數字 數字 數字 數字
 EMBED單檔 單檔
參考 Icemark(jpg, tif): 測試加入文字的浮水印(其他的image id ,identification尚未測試 SignMyImage(jpg, tif*): *:Only rgb images with 8 bits per color can be signed.However it COULD convert image data to required format. 測試加入文字的浮水印:在試用版中,"讀不到中文檔名"的檔案且一次只能"開一張",無法同時多張加入浮水印(但裡面有 "批量"簽名的按鈕)。 MediaHider(jpg, tif, bmp):說明。有點復雜、但說明文件中有演算法(研究中)。 Digimarc : 使用教學,非企業版者需使用photoshop(PS)加入Digimarc在PS中的plug-in。
Digimarc:為Photoshop software(PS)中的DigiMarc Picturemarc元件,
即使將影像列印出來後再重新掃描入電腦中, 還是可以偵測出浮水印。若要在影像中加入浮水印, 您必須先向Digimarc 公司註冊以取得個人的 ID, 然後再於 Photoshop 中執行 /Digimarc命令, 將您的 ID 嵌入影像, 並加入版權所有...等資訊。相關的詳細資料, 請參考 Digimarc 網站:http://www.digimarc.com。
數位典藏國家型科技計畫內容發展分項計畫數位典藏工作流程調查表(國立故宮博物院、資訊保護家)
故宮採用浮水印技術,於原始影像檔上加入隱性浮水印,作為版權控制(使用者、買賣方、專利/著作權)和身份確認。一旦故宮文物遭人侵權使用,故宮管理單位便能從資料中偵測(detect)、解出(decode)浮水印,作為版權控制、證明「版權所有」,並依法維護國家財產[2]。數位典藏(中央研究院歷史語言研究所 文物館403室),相關文章:
玖、數位內容保護捌、數位內容保護系列一:什麼是浮水印?系列三:浮水印應用軟體之規劃
數位典藏技術研發
認證中心架構

前三套軟體的評論、比較(德國)


   Reference
YKLee's:intro.Home Page

找試用軟體的WEB(搭配GOOGLE):softseasoft-filefree download 4 windows


----以上-----

2012年7月24日 星期二

論文:次序迴歸及其應用:支持向量機學習法

次序迴歸及其應用:支持向量機學習法
Ordinal regression and applications: A support vector machine approach

以下分為三部份:(一)"結論和討論"、(二)"實驗圖表和結果" 和 (三)"研究所資料 及 論文參考文獻"。
(一)、結論和討論


動機:

        由於次序型資料在日常生活中已隨處可見且日益重要,尤其在疾病資料的分析上和影像檢索領域上更顯為重要。因此本文利用Herbrich建立次序迴歸演算法的方法為基礎,以不同懲罰係數的支持向量機學習法結合累積羅吉斯模型建立新的次序迴歸演算法。


實驗方法:

       本文實驗中,我們分別利用Herbrich[1]模擬資料集的方式創造新的次序型資料集和以CHU WEI網頁的糖尿病資料集(diabetes)做為樣本集合,以Herbrich次序迴歸演算法和我們的新的演算法分析次序型資料並比較分析結果的差異。


實驗結果:

      模擬資料,我們的演算法所得出的次序型資料的平均風險較低,而在diabetes資料集上,我們的演算法解決了在以Herbrich次序迴歸演算法分析diabetes資料集時,閥值產生錯置的問題,並說明我們的演算法可依樣本的重要性,以不同的懲罰係數訓練出更佳的對應函數。另外我們模擬用戶進行相關性回饋,以我們的次序迴歸演算法為基礎來產生檢索結果,達到不錯的效果。最後,為了避免系統在處理次序迴歸演算法的最佳化問題時,產生記憶體不足,因此我們還討論最大增益的單變數SMO來解決此問題,其中本文在單變數SMO上更新位置的取法使得SMO求解時,更加的快速,才得以使得演算法更加的有效且具有實用性。

2012年2月9日 星期四

統計R

R
讀圖:ReadImagespixmap
<EX>
1.

setwd('D:/doc/image/me')
library(ReadImages)
library(sqldf)
me <- read.jpeg('fun.jpg')
meid <- data.frame(z = 1:1200, y = as.numeric(me))
meid <- sqldf('select * from meid order by y')

setwd('D:/doc/image/others')
tmp <- NULL
for(i in dir()) tmp[[i]] <- read.jpeg(i)
id <- sapply(tmp, mean)
id <- data.frame(n = names(id), m = id)
id <- sqldf('select * from id order by m')
idx <- cbind(id, meid)
idx <- sqldf('select * from idx order by z')

setwd('D:/doc/image')
png('me.png', height = 1000, width = 750)
par(mfcol = c(40,30), mar = rep(0,4), xpd = NA)
for(i in idx$n) plot(tmp[[i]])
dev.off()

## 處理圖片 ##
setwd('D:/doc/image/others')
shell("convert *.jpg  -crop 120x120+10+5 thumbnail%03d.png")
shell("del *.jpg")
shell("convert -type Grayscale *.png thumbnail%03d.png")