推奨:ASPのDateAdd関数に日付を追加または減算する方法この記事では、ASPのDateAdd関数での日付追加または減算の使用を紹介します。知る必要がある人はそれを参照できます。
1.写真に透かしを追加します次のようにコードをコピーします: www.cuoxin.com
<%
dim jpeg '' '' //変数を宣言します
jpeg = server.createobject( "persits.jpeg") '' ''を設定します
jpeg.open server.mappath( "aaa.jpg") '' '' //ソース画像の場所
jpeg.canvas.font.color =&h000000 '' '' '//ウォーターマークフォントカラー
jpeg.canvas.font.family = "安安" '' '' //ウォーターマークフォント
jpeg.canvas.font.size = 14 '' '' //ウォーターマークフォントサイズ
jpeg.canvas.font.bold = false '' '' //大胆ですか?使用:true
jpeg.canvas.font.bkmode =&hfffff '' '' //フォントの背景色
jpeg.canvas.print 10、10、 "Undefeated Naughty Studio" '' '' '' //透かしテキスト、2つの数字10は透かしのXY座標です
jpeg.save server.mappath( "aaa_05.jpg") '' '' //透かしと保存場所で新しい画像を生成します
jpeg = nothing '' '' 'を設定
respons.write "<img src = aaa_05.jpg>" '' '' //このページで透かしが生成された後に画像を表示
%>
2。サムネイルを生成します
次のようにコードをコピーします: www.cuoxin.com
<%
dim jpeg '' '' //変数を宣言します
jpeg = server.createobject( "persits.jpeg") '' ''を設定します
jpeg.open server.mappath( "aaa.jpg") '' '' //元の画像の場所
jpeg.width = jpeg.originalwidth/4 '' '' //写真の幅が元の画像の4分の1であると仮定します
jpeg.height = jpeg.originalheight/4 '' '' //画像の高さが元の画像の4分の1であると仮定します
jpeg.sharpen 1、130 '' '' //シャープニング効果を設定します
jpeg.save server.mappath( "aaa_small.jpg") '' '' //サムネイルの場所と名前を生成します
jpeg = nothing '' '' 'を設定
respons.write "<img src = aaa_small.jpg>" '' '' //このページに生成されたサムネイル画像を表示します
%>
ASPJPEGコンポーネントの高度な使用方法の紹介
ASPJPEGは、非常に強力な画像処理コンポーネントであり、純粋な英語版です。ただし、無料のバージョンとクラックバージョンはありますが、詳細かつ詳細な紹介を提供する記事はあまりありません。たとえあるとしても、それらは写真のサムネイルと絵の透かしのみを伴います。たぶんそれは純粋な英語のせいです。
ここでは、これらの問題に関するASPJPEGの高度な使用について説明します。ここのテクノロジーには、主に次のものが含まれます。
写真サムネイル
絵の透かし
セキュリティコードテクノロジー
画像切断
画像マージ
データベースサポート
よりまれに使用される方法
いくつかの関連する実用的なテクノロジー
ASPJPEGの唯一の欠点は、出力方法が比較的単一であることです。ここでは、主に画像を保存してから呼び出すこの出力方法について説明します。さらに、私は比較的怠zyなので、一部のコードはまだ元のドキュメントで引用されています。私が理解していないことを説明します!
VBまたは.NETを研究した同志は、一目でそれを確実に理解するでしょう。ブラシが来ます。 hehe。
1。写真サムネイル
次のようにコードをコピーします: www.cuoxin.com
<%
jpeg = server.createObject( "persits.jpeg")呼び出しコンポーネントを設定します
path = server.mappath( "Images")& "/clock.jpg"保留中の画像パス
jpeg.openパスオープン画像
高さと幅は、元の画像の1/2です
jpeg.width = jpeg.originalwidth / 2
jpeg.height = jpeg.originalheight / 2
写真を保存します
jpeg.save server.mappath( "images")& "/clock_small.jpg"
%>
<img src = "images/clock_small.jpg">処理された写真を表示します
2。画像の透かし
次のようにコードをコピーします: www.cuoxin.com
<%
jpeg = server.createObject( "persits.jpeg")を設定します
jpeg.open server.mappath( "Images/dodge_viper.jpg")
書き始めます
jpeg.canvas.font.color =&h000000 '' ''白色
jpeg.canvas.font.family = "Courier new"フォント
jpeg.canvas.font.bold = true厚いかどうか
JPEG.CANVAS.PRINT 10、10、「Copyright(C)XYZ、Inc。」
印刷x印刷座標y文字を印刷する
以下は、画像の境界加工です
jpeg.canvas.pen.color =&h000000 '' ''黒色
jpeg.canvas.pen.width = 2ブラシ幅
jpeg.canvas.brush.solid = falseを太字にするかどうか
jpeg.canvas.bar 1、1、jpeg.width、jpeg.height
開始x座標開始y座標入力長さ入力高さ
jpeg.save server.mappath( "images/dodge_viper_framed.jpg")保存
%>
3。セキュリティコード
安全なMAの原則は、透かしを追加することに似ています。多くの友人が特定のコードテクニックについて私に尋ねたので、私はあなたとそれを共有するためにここにそれを書きます。私は彼らに普通の人について話しません。 hehe。
次のようにコードをコピーします: www.cuoxin.com
<%
セキュリティコードを生成する関数www.wuyouw.com
function make_randomize(max_len、w_n)max_lenは長さを生成します。
ランダム化
intcounter = 1からmax_lenの場合
whatnext = int((1-0+1)*rnd+w_n)
whatnext = 0の場合
上部= 122
低= 97
それ以外
上部= 57
低= 48
ifを終了します
strnewpass = strnewpass&chr(int((upper-lower+1)*rnd)+lower)
次
make_randomize = strnewpass
エンド関数
%>
セキュリティコードの画像を生成します。もちろん、あなたは事前に背景画像を準備する必要があります
次のようにコードをコピーします: www.cuoxin.com
<%random_num = make_randomize(4,1)は4桁のセキュリティコードを生成します
session( "random_num")= random_numセッションが呼び出されるのはなぜですか?セッションセキュリティコードなしでは完全に無意味です。 hehe
jpeg = server.createObject( "persits.jpeg")呼び出しコンポーネントを設定します
jpeg.open server.mappath( "infos/random_pic/random_index.gif")準備された画像を開きます
jpeg.canvas.font.color =&h006699
jpeg.canvas.font.family = "arial black"
jpeg.canvas.font.bold = false
jpeg.canvas.printtext 0、-2、random_num
jpeg.save server.mappath( "infos/random_pic/random_index.bmp")save
%>
<img src = "infos/random_pic/random_index.bmp" align = "absmiddle">
自分でやってください。 hehe。
4。画像切断
Aspjpegを知らない人は、それを使用してカットすることができないと常に考えていました。
実際にはそのような方法があります
収穫X1、Y1、X2、Y2
長方形の左上隅のX座標、Y座標の右下隅のX座標をカットします
以下にデモを行います
jpeg = server.createObject( "persits.jpeg")を設定します
jpeg.open server.mappath( "/pic/1.gif")
jpeg.width = 70
jpeg.height = jpeg.originalheight*70 / jpeg.originawidth
jpeg.crop 0,0,70,52切断は、実際に52ピクセル以上の下部を除去しています
jpeg.save server.mappath( "/temp_pic/small_1.gif")保存します
それはどうですか、それはとても簡単です
5。画像の合併
ここでは、dodge_viper.jpg画像にロゴ画像を追加したい
実際、画像のマージの方法を使用して、透かしを動的に印刷することもできます。
次のようにコードをコピーします: www.cuoxin.com
写真= server.createObject( "persits.jpeg")を設定します
photopath = server.mappath( "images")& "/dodge_viper.jpg"
Photo.Open Photopath
logo = server.createObject( "persits.jpeg")を設定します
logopath = server.mappath( "images")& "/clock.jpg"
logo.open logopath
logo.width = 70
logo.height = logo.width * logo.originalheight / logo.originalwidth
photo.drawimage 0、0、ロゴ
Photo.sendbinary
ここでは、sendbinaryの出力方法を使用します。もちろん、変更されたdodge_viper.jpgを最初に保存してから入力することもできます。私は個人的にはsendbinaryメソッドを使用するのが好きではありません。インターネットの速度が遅いときに間違いを犯すのは簡単です。スピードはあまり得意ではありません。 hehe。
6.データベースサポート
ここではあまり言いません。実際、それはバイナリ法です。誰もが知っているように、画像はデータベースに保存された場合にのみバイナリファイルとして保存できます。だから私はコードを書くのが面倒です。
7。その他の方法
canvas.line(左、上、右、下部)
直線を描きます
canvas.ellipse(左、上、右、下)
楕円を描きます
canvas.circle(x、y、radius)
円を描きます
canvas.bar(左、上、右、下)
コードが付いた長方形を描画します
canvas.font.shadowcolor
テキストシャドウカラー
canvas.font.shadowxoffset
影X座標設定
canvas.font.shadowyoffsetは長い間
Y座標設定
canvas.font.bkmode as string
テキストの背景
===============================================================
今日は、写真に透かしを追加するASPの知識についてお話します
ASPは、画像に透かしを追加するためにコンポーネントが必要です...一般的に使用されるものには、中国人によって開発されたASPJPEGとWSIMAGEが含まれます...前者は30日間無料です...後者は完全に無料です...もちろん中国製品を使用する必要があります... hehe ...
コンポーネントの登録方法:
コマンドプロンプトに「regsvr32 [dll path]」を入力します
画像に透かしを追加することは、画像サイズを取得し、その上に透かしを書くことに過ぎません... ASPコードはコントロールコンポーネントとしてのみ機能します。コードを使用してすべてを説明します。
1:画像サイズを取得します(ここではピクセル値で表されます。Photoshopを勉強する友人が理解する必要がある友人)
次のようにコードをコピーします: www.cuoxin.com
<%
obj = server.createobject( "wsimage.resize") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'を設定したりします
obj.loadsoucepic server.mappath( "25.jpg") '' '' '' '' '' '' '' '' '' '写真を開いて、写真名は25.jpgです
obj.getSourceInfo iWidth、iheight
Response.Write "画像幅:"&iWidth& "<br>" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'は、「「「「「」で「「「「」でよいは、 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''は、「「「「「「「」で「」では、「「「」では、「」では 'は'は、
Response.Write "Image Height:"&iheight& "<br>" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''は、「「「「「「「」で「」では、「「「」では、「」では 'は'は、 '' '' '' '' '' '' '' '' '' '' '' '' ''は、「「「「「「「「「」で「」「「「「「「」で「」「「「「「「」 'は、「」'は ''は、「
strerror = obj.errorinfo
strerror <> "" thenの場合
Response.write obj.errorinfo
ifを終了します
obj.free
obj =何も設定しません
%>
2:テキストの透かしを追加します
次のようにコードをコピーします: www.cuoxin.com
<%
obj = server.createObject( "wsimage.resize")を設定します
obj.LoadSoucePic server.mappath("25.jpg") ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
obj.quality = 75
obj.txtmarkfont = "中国語の色クラウド" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
obj.txtmarkbond = false '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''透かしテキストの厚さを設定する
obj.MarkRotate = 0 '' '' '' '' '' '' '' '' '' '' '' '' '' '透かしテキストの回転角
obj.txtmarkheight = 25 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'fortermarkテキストの高さ
obj.addtxtmark server.mappath( "txtmark.jpg")、 "take you out"、&h00ff00&、10、70
strerror = obj.errorinfo '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''画像の名前は生成され、テキストの色は画像の位置の透かしです
strerror <> "" thenの場合
Response.write obj.errorinfo
ifを終了します
obj.free
obj =何も設定しません
%>
3:画像の透かしを追加します
次のようにコードをコピーします: www.cuoxin.com
<%
obj = server.createObject( "wsimage.resize")を設定します
obj.LoadSoucePic server.mappath("25.jpg") ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
obj.loadimgmarkpic server.mappath( "blend.bmp") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'は、
obj.quality = 75
obj.addimgmark server.mappath( "imgmark.jpg")、315、220、&hfffff、70
strerror = obj.errorinfo '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''画像の名前は生成され、テキストの色は画像の位置の透かしです
strerror <> "" thenの場合
Response.write obj.errorinfo
ifを終了します
obj.free
obj =何も設定しません
%>
実際、画像に透かしを追加するのは簡単です。次に、wsimage.dllコンポーネントの他の2つの主要な使用について話しています。含む:
写真を切り取り、写真のサムネイルを生成します。
私はそれに慣れているので、コードにコメントを追加します:
トリミングされた写真:
次のようにコードをコピーします: www.cuoxin.com
<%
obj = server.createObject( "wsimage.resize")を設定します
obj.loadsoucepic server.mappath( "25.jpg")
obj.quality = 75
obj.cropimage server.mappath( "25_crop.jpg")、100,10,200,200 '' '' '' '' '' '' '' '' '' '' '' ''クリップサイズを定義し、画像名を生成する
strerror = obj.errorinfo
strerror <> "" thenの場合
Response.write obj.errorinfo
ifを終了します
obj.free
obj =何も設定しません
%>
詳細なコメント:CropimageはWSIMAGEのクロップイメージ法を使用しています。画像生成を定義するとき、100と10は左上隅のカットポイント、つまり画像の左側に100ピクセル、上部に10ピクセルです。最後の2つの200は、カットされたブロードバンドと高さと高さを表しています。
画像サムネイルを生成します:
次のようにコードをコピーします: www.cuoxin.com
<%
obj = server.createObject( "wsimage.resize")を設定します
obj.loadsoucepic server.mappath( "25.jpg") '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'は、
obj.quality = 75
obj.outputspic server.mappath( "25_s.jpg")、0.5,0.5,3 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''は、 '' '' '' '' ''が''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
strerror = obj.errorinfo
strerror <> "" thenの場合
Response.write obj.errorinfo
ifを終了します
obj.free
obj =何も設定しません
%>
詳細な説明:
サムネイルをエクスポートするには4つの方法があります。
(1)obj.outputspic server.mappath( "25_s.jpg")、200,150,0
200は出力幅、150は出力の高さです。この出力フォームは、強制出力幅と高さであり、画像の変形を引き起こす可能性があります。
(2)obj.outputspic server.mappath( "25_s.jpg")、200,0,1
出力幅として200がある場合、出力の高さは列でスケーリングされます。
(3)obj.outputspic server.mappath( "25_s.jpg")、0,200,2
出力の高さとして200で、出力幅は列でスケーリングされます。
(4)obj.outputspic server.mappath( "25_s.jpg")、0.5,0.5,3
最初の0.5は、生成されたサムネイルが元の画像の幅の半分であることを意味します。
2番目の0.5は、生成されたサムネイルが元の画像の高さの半分であることを意味します。
幅と高さの一貫した減少は、元の画像が縮小されることを意味します。幅と高さのズーム比が1を超える場合、元の画像が拡大されます。
転載:http://hi.baidu.com/miracle521/item/e34191333fdc00746ac4b5f25.html
2-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
透かしで写真をアップロードするASP.NET(テキスト透かし、画像の透かし、テキスト +画像の透かし)
写真に透かしを追加します(テキストの透かし、画像の透かし、テキスト +画像の透かし)
複製画像:
図500)this.width = 500 "border = 0 <
ウォーターマーク500)this.width = 500 "border = 0 <
写真に透かしを追加した後(右上隅 +真下に注意してください)
500)this.width = 500 "border = 0 <
コード:Drawimg.cs
次のようにコードをコピーします: www.cuoxin.com
システムの使用。
System.drawingを使用しています。
System.drawing.imagingを使用しています。
System.drawing.drawing2dを使用しています。
パブリッククラスの描画
{
private string workingdirectory = string.empty; //パス
private string imagename = string.empty; //処理された画像
プライベート文字列imagewater = string.empty; //透かし画像
private string fontstring = string.empty; //透かしテキスト
Enum DealType {none、wateimage、waterfont、doubledo}; // enumコマンド
プライベートディアタイプディータイプ;
public drawimg()
{}
public string publicworkingdirectory
{
得る
{
workingdirectoryを返します。
}
セット
{
WorkingDirectory = value;
}
}
public string publicimageName
{
得る
{
imagenameを返します。
}
セット
{
imagename = value;
}
}
public string publicimagewater
{
得る
{
ImageWaterを返します。
}
//透かし画像を設定した場合、透かし式画像効果を使用することを意味します。
{
dealtype = deartype.waterimage;
ImageWater = value;
}
}
public string publicfontString
{
得る
{
fontstringを返します。
}
//透かしテキストが設定されている場合、透かしテキスト効果が必要であることを意味します。
{
dealtype = deartype.waterfont;
fontstring = value;
}
}
public void dealimage()
{
isdouble();
スイッチ(dealtype)
{
case deartype.waterfont:writefont();壊す;
case deortype.waterimage:writeimg();壊す;
case doultype.doubledo:writefontandimg();壊す;
}
}
private void isdouble()
{
if(imagewater+""!= "" && fontstring+""!= "")
{
DealType = DealType.Doubledo;
}
}
privatevoid writefont()
{
//作業ディレクトリを設定します
// string workingdirectory = @"c:/watermark_src/waterpic";
//著作権メッセージとして使用する一連のテキストを定義します
// String Copyright = "Copyright?2002 -AP Photo/David Zalubowski";
//透かしに写真を含む画像オブジェクトを作成します
画像imgphoto = image.fromfile(workingdirectory + imagename);
int phwidth = imgphoto.width;
int pheight = imgphoto.height;
//元の写真のサイズのビットマップを作成します
Bitmap bmphoto = new Bitmap(Phwidth、Pheight、Pixelformat.Format24BPPRGB);
bmphoto.setSrolution(imgphoto.horizontalresolution、imgphoto.verticalResolution);
//ビットマップをグラフィックオブジェクトにロードします
Graphics grphoto = graphics.fromimage(bmphoto);
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------ -
//ステップ#1-著作権メッセージを挿入します
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------ -
//このグラフィックスオブジェクトのレンダリング品質を設定します
grphoto.smoothingmode = smoothingmode.antialias;
//元のサイズの写真画像オブジェクトをグラフィックオブジェクトに描画します。
grphoto.drawimage(
imgphoto、//写真画像オブジェクト
新しい長方形(0、0、phwidth、pheight)、//長方形構造
0、//描画するソース画像の部分のx座標。
0、// drawのソース画像の部分のy座標。
phwidth、//描画するソース画像の部分の幅。
Pheight、//描画するソース画像の部分の高さ。
graphicsunit.pixel); //測定単位
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//著作権メッセージのサイズを最大化するために
//複数のフォントサイズをテストして、可能な限り最大のものを決定します
//写真の幅に使用できるフォント
//可能な限り検討したいポイントサイズの配列を定義します
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
int [] sizes = new int [] {16,14,12,10,8,6,4};
font crfont = null;
sizef crsize = new sizef();
//著作権文字列の長さをチェックする定義されたサイズをループします
//ピクセルの長さが画像幅よりも少ない場合、このフォントサイズを選択します。
for(int i = 0; i <7; i ++)
{
//フォントオブジェクトをarial(i)pt、boldに設定します
// crfont = new Font( "arial"、sizes [i]、fontstyle.bold);
crfont = new font( "arial"、sizes [i]、fontstyle.bold);
//このフォントの著作権文字列を測定します
crsize = grphoto.measurestring(fontstring、crfont);
if((ushort)crsize.width <(ushort)phwidth)
壊す;
}
//すべての写真の高さはさまざまなので、aを決定します
//画像の下部から5%の位置
int ypixlesfrombottom =(int)(pheight *.05);
//これでポイントサイズがあり、著作権の高さを使用します
//写真の文字列を描くためにY座標を決定する
float yposfrombottom =((pheight -ypixlesfrombottom) - (crsize.height/2));
//画像の幅の中心を計算することにより、そのX座標を決定します
float xcenterofimg =(phwidth/2);
//テキストのアライメントを中心に設定して、テキストレイアウトを定義します
stringformat strformat = new StringFormat();
strformat.alignment = stringalignment.center;
//セミトラスペアレントブラックのブラシを定義します(153に設定)
SolidBrush semitransbrush2 = new SolidBrush(color.fromargb(153、0、0、0));
//著作権文字列を描画します
grphoto.drawstring(fontstring、//テキストの文字列
crfont、// font
semitransbrush2、//ブラシ
new Pointf(xcenterofimg+1、yposfrombottom+1)、//位置
strformat);
//セミトラスペアレントホワイトのブラシを定義します(153に設定)
SolidBrush semitransbrush = new SolidBrush(color.fromargb(153、255、255、255));
//著作権文字列を2回目に描画して、シャドウエフェクトを作成します
//このテキストを必ず1ピクセルを右と下に移動してください1ピクセル
grphoto.drawstring(fontstring、//テキストの文字列
crfont、// font
SemiTransbrush、//ブラシ
New Pointf(xcenterofimg、yosfrombottom)、//位置
strformat);
imgphoto = bmphoto;
grphoto.dispose();
//新しい画像をシステムに保存します。
imgphoto.save(workingdirectory + imagename + "_finally.jpg"、imageformat.jpeg);
imgphoto.dispose();
//テキストアライメント
}
共有:ASP中国の文字化けの問題解決策どの言語の文字化けの問題が存在しても、ASPも例外ではありません。この記事では、ASPの文字化けコードを解決する方法を紹介します。それを必要とする友達はそれを参照できます。