フォントを変形させて描画するには

解決


delphi大好き  2009-04-01 22:43:12  No: 33814

質問があいまいですいません、
いつも拝見させて貰っています。

趣味で、学習を兼ねてグラフィックソフトを作っているのですが、

フォントを、変形させて
(上から下に、例えば扇状や、右側から左にかけて右を小さく、左を大きくなどに歪ませて)

描画させたいと思っています。

使用環境は、XP&Delphi3.1です。
上位のDelphiに同等の機能があるのを参考書でみたのですが、

Delphi3等低級バージョンで、それを手動で描画する方法は無いでしょうか?

無理難題で恐縮ですが、ご教授いただけたら幸いです。
それではよろしくお願いします。


delphi大好き  2009-04-02 04:11:51  No: 33815

自分の勘違いでした。
読み間違いでそんな純正機能は無いのですね。

フォントを自由に変形させて描画する方法があったら、
ご教授お願いします(__)。


monaa  2009-04-02 04:28:50  No: 33816

Delphi Graphic Secrets
6-2 テキストエフェクト P351
http://www.asahi-net.or.jp/~ha3t-nkmr/DGS/
がまさにそれかと思います。
私はこの方法をこの本で知ったので、
著作物の引用なので私ができる回答はここまでっす。


monaa  2009-04-02 04:34:39  No: 33817

むむむ…廃刊でしたか。
リンク先のファイルを展開して
Chapter6\6-2\TextEffect
のソースを参考にしてみてください。
基本的な技術の習得にはChapter6をマスターする必要があります。


Delphi大好き  2009-04-02 05:39:09  No: 33818

早速ありがとうございます、
色々検索して調べていたのですが、
自分が想像した以上に難しいというのが分かって、
半分諦めていたところでした^^;

書籍の紹介ありがとうございす!
アマゾンにて購入してしまいました^^。
タイトルだけは知っていて、
前々から気になっていた本でした^^;

色々勉強してみたいと思います^^!

ありがとうございましたm(__)m。


monaa  2009-04-02 09:18:41  No: 33819

っちょ…廃刊になってたのに購入って事は、
中古の購入ですか?
なんかえらくプレミアついていたみたいですが…
うーんいくらなんでも、9000円は高すぎですよ…
買えない本を薦めるんじゃなかった;;
確かに良い本なんですけどね、なんとか普通の価格で流通してほしいですね。
ぶっちゃけリンク先のファイルのソース読めば分かるかなと思っての投稿す。
ほんと申し訳ないです。
でも、熟読する価値はあります。


Delphi大好き  2009-04-02 19:40:49  No: 33820

ほぼ参考書マニアなので、お構いなく^^(笑)
delphiだけで30冊超えていますw
最近はCの初歩的な入門書を読んでいます。
軽く覚えて、APIの解読を目指してますw

独学なので、参考書は金額に関係なく集めているわけです^^

最高額は、新品3千円→中古一万・・・;
その時は値段知って流石に凹みましたが^^;

夜寝る前に、コレクションと化した参考書を、
軽くつまみ読みするのが習慣になってます^^;
おかげで色々アイデアの元となってます^^。

参考書は先生みたいなものですね^^
届くのが楽しみですw。

成功したらまた書き込みにきます^^。


Delphi大好き  2009-04-07 03:23:19  No: 33821

本届いたので、つまみ読みしてみました^^。

印刷関係と第一章が、かなり為になります。
確かに良書ですね^^。
特に印刷関係が、知りたかった内容がてんこもりでした^^。
この情報が喉から手が出るほど欲しかった^o^/!!

値段・・・新品価格は見なかった事にしてますTT。
てっきり、値段から分厚い本と思って期待してたのですが・・・;
その分貴重な内容が凝縮されてるので、満足はしてるのですが^^;

肝心のソースはDelphi3に対応してませんでした;
手持ちのDelphi3では対応してないみたいです;
ただソースは業務では使えないと書いてあったので、DHGLは諦めますTT。
TurboDelphi2006は仕事で使ってるので;

6章のは、delphi3がDHGL未対応なので、無理そうです;

フォントをBitmapに書き込んで、
Bitmapを一ラインずつ書き込み、ラインの長さを調整して、
(例えば台形みたいに)変形させる方法を探しています。

今現在失敗中の試し書きコードです。

先程他の参考書で、Pixelsを使って一ラインずつ書く方法知りました。
まだ使い方覚えてないのですが^^;
以下のでは的外れの方法でしょうか?
(動かないからそうなのかも^^;)

procedure TForm1.Button1Click(Sender: TObject);
var
  bmp1,bmp2:TBitmap;
  s:integer;
begin
  s := 0;
  bmp1 := TBitmap.Create;
  bmp2 := TBitmap.Create;
  if not opendialog1.Execute then
    exit;
  try
   bmp1.LoadFromFile(opendialog1.FileName);
   while bmp1.Height > s do
   begin
    s := s + 1;
    caption := inttostr(s);

    bmp2.Width := bmp1.Width;
    bmp2.Height := 1;
    bmp2.Canvas.Draw(0,0,bmp1);
    Image2.Canvas.Draw(0, s , bmp2);
    Image1.Picture.Bitmap := bmp1;  
   end;
  finally
    bmp1.free;
    bmp2.free;
  end;
end;


TS  2009-04-07 04:12:12  No: 33822

>フォントをBitmapに書き込んで、
>Bitmapを一ラインずつ書き込み、ラインの長さを調整して、
>(例えば台形みたいに)変形させる方法を探しています。

めもニャンだむ さんのホームページは該当しませんか。
http://blog.livedoor.jp/junki560/archives/cat_854169.html


monaa  2009-04-07 05:14:12  No: 33823

文字のゆがみが目的なら、別にDHGLをフルで使う必要はないと思いますよ。
ほしいところだけコピペすればよいだけです。
>フォントをBitmapに書き込んで、
>Bitmapを一ラインずつ書き込み、ラインの長さを調整して、
>(例えば台形みたいに)変形させる方法を探しています。
この方法だと、画像の上に文字を描いたりする時下の画像も一緒にゆがんでしまいます。
何れにせよ、高い本を買わせてしまった以上お手伝いさせていただきます。
上の方法を実現するコードで良いのでしょうか?


Delphi大好き  2009-04-07 06:20:15  No: 33824

>TSさんありがとうございます、
  早速試してみました^^。

VCLImageUtils.pasの入手まではうまく言ったのですが、
Uses登録したVCLImageUtilsのコンパイル時で、
PngImage.dcuがありませんと跳ね返されました。

因みに、VCLImageUtilsのダウンロードはリンク切れで、
VCLImageUtils検索で同ホームページから直接入手出来ました。

過去検索で、探す人いた時の為に追記しておきます^^。

環境は、D3.1とD2006無償版、WinXP SP3です。

PngImageで検索したところ、標準ライブラリ(?)のようですね。
D2006以上のDelphiでないと駄目なのでしょうか?

>monnaさんありがとうございます、
  お気になさらずに^^。

印刷関係の欲しかったのが入手出来たので万々歳です^o^。

ではお言葉に甘えて(笑)^^;。
助かりますm(__")m。

DHGL等のソースを参考にするのですね?

難易度高めですが、
切り貼りして色々試してみます^^/。


みんみん  2009-04-07 06:48:20  No: 33825

パスを使ってテキストを変形させているこんなサイトもありますよ。
何かの参考になるかもしれません。

http://www.geocities.jp/asumaroyuumaro/program/winapi/path.html#6


Delphi大好き  2009-04-07 07:13:45  No: 33826

>みんみんさん

ありがとうございます、なんとDelphi3でも動きました!!

思い切りこれに近いです^o^!
ありがとうございますm(__)m。

じっくりいじって、
コツを掴んでみたいと思います^^。

願!解読w!!
頑張ってみます^^/。


Delphi大好き  2009-04-08 02:15:30  No: 33827

皆さん貴重な情報をありがとうございます。

数値を適当に(笑)いじってたら出来ました^^。

何か迷ったら即検索!  ですね^^。

助かりましたm(__")m。

数値次第で色々エフェクト出来るんですね^^。
難しすぎですが、とても面白いです^^。

PAS、本とサンプル読んで、少し判りました。
APIで、こんな便利で面白い機能があるとは知りませんでした。

これ(PAS描画)をラベルコンポーネントにして作ったら面白そうですね(笑)。

・・・自分にはハードル高すぎだったりはしますがw

D3の動画ヘルプとPAS見ながら勉強してみます!

それではありがとうございまいした。

>monnaさん
一応解決ですが、
もし何かありましたら是非^^!

自分も、もしコンポで変化あったら再カキコにきます^^。

ではでは^^/。


Delphi大好き  2009-04-14 06:10:22  No: 33828

>めもニャンだむ さんのホームページは該当しませんか。
http://blog.livedoor.jp/junki560/archives/cat_854169.html

の事で質問なのですが、

VCLImageUtilsをコンパイルする事が出来ません。
↓下がVCLImageUtilsです。
http://blog.livedoor.jp/junki560/archives/29055371.html

これをコンパイルすると、
UsesのPngImageが存在しないといって跳ね返されてしまいます。

最初はDelhiのバージョンが古いから思っていたのですが、
HPの日付をみると更新は2005年、
こちらで使用したDelphiはTurboDelphi2006(無償版)です。
Delphiの方が新しい・・・。

PngImageで検索してもいまいちヒットせず、
どうやら標準で付いてるライブラリっぽい・・・。
謎です。

誰か、PngImageが何か解る方がいましたら、お願いしますm(__)m。


TS  2009-04-14 06:23:07  No: 33829

>UsesのPngImageが存在しないといって跳ね返されてしまいます。

私も検索してみましたが、現在はダウンロードは出来ないようです。

これはあきらめて下さい、PNG形式等のデータを処理するものですから
無くてもかまわないはずです、これら該当する箇所をコメントアウト
して下さい。


TS  2009-04-14 06:44:35  No: 33830

紹介のみで私はまだ使用していませんが、
ざっと見てみましたが。

uses  部分の  PngImage,

function LoadPng(bmp: TBitmap; filename: string): Boolean;

これを削除なり  (* *) で囲むなりすれば良いと思います。
他にもエラーが出ればそれも同上です。


monaa  2009-04-14 16:31:41  No: 33831

遅くなりました、画像の自由変形はかなり難しく複雑な処理が必要になります。現在ライブラリ作成中ですが、とりあえず動作確認を取りたいので以下のファイルの動作確認をよろしくお願いします。
D2009ではポインタ参照エラーが出ないのに、D7では時々発生する現象に悩んでおります。最悪ポインタ演算を大幅に切り取る予定です。
こうなると実行速度が劇的に遅くなるんですがね…
アルゴリズムの方はほぼ完成ですが、まだ完璧ではありません。
その点についても動作確認が取れたあと行います。
http://www.studio-fe.hiroishi.org/files/BitmapUtil004D7.zip
うーん私の組み方にバグがあるのか、Delphiがバグってるのか…
たいてい、私なんですがねorz。


D  2009-04-14 21:04:23  No: 33832

BitmapUtil004D7.zip試してみました。
環境はXP SP2 D6 Proです。
「プロジェクトオプション」→「コンパイラ」→「実行時オプション」で「範囲チェック」にチェックを入れると、どのボタンを押しても「Range check error.」となります。
チェックを外してコンパイルすれば問題なく実行できました。

あと良く分からないながら「範囲チェック」にチェックを入れた状態でエラーが起きる箇所の変数をByteでキャストしていったらエラーは出なくなりました。

procedure SetARGB(px:PInteger; var A,R,G,B:Byte);
begin
{*}  A := Byte(px^ shr 24) ;//and $000000FF;
{*}  R := Byte(px^ shr 16) ;//and $000000FF;
{*}  G := Byte(px^ shr  8) ;//and $000000FF;
{*}  B := Byte(px^)        ;//and $000000FF;
{
  A := px^ shr 24 ;//and $000000FF;
  R := px^ shr 16 ;//and $000000FF;
  G := px^ shr  8 ;//and $000000FF;
  B := px^        ;//and $000000FF;
}
end;

こんな感じで
SetARGB
DIB32AlphaBlend
DIB32TextAlpha
の三つの関数のByte型の変数をキャストしました。

ところで「範囲チェック」はチェックしてくれるんならその方が安心と思ってずっとチェック入れてるんですが、入れない方が良いのかな、、


Delphi大好き  2009-04-15 07:55:34  No: 33833

皆さんありがとうございます、

>TSさん
ありがとうございます、
早速やってみました。

VCLImageUtilsはエラーは消えたものの、
本文でもPingimage関連のコマンドがあり、
それも消していったところ、
エラーは消えたのですが、機能不十分で実行出来ませんでした^^;
諦めます^^;

>monaaさん

わざわざありがとうございます、
凄いです、感謝します^^。

早速実行してみました。
環境はXP SP3  TurboDelphi2006(無償版)です。
こちらでは問題なくコンパイル出来、実行出来ました^^。

範囲オプションをこちらでも入れてみたのですが、
こちらではエラーは出ませんでした。
Delphiのグレードが違うだけでも色々なのですね(?_?)。

色々ありがとうございますm(__)m。

>PAS表示、
無謀にも(笑)コンポーネントの参考書みながらやってみました。
案の定参考書通りに、初歩のプロパティを作るだけが精一杯でした(笑)。

覚えられたら、面白そうですね^^。
いつかは自由にライブラリやコンポーネントを、
作れるようにはなってみたいです^^。
遥かかなた、遠い先の事ですが^^;

ありがとうございます、
一応完了チェックを入れておきます^^。


Delphi大好き  2009-04-15 08:04:32  No: 33834

追記です。

グラフィックエフェクトは深く考えたことが無く、
ドローソフト感覚に簡単に考えてたのですが、
自分が思っていたより、とても難しいものみたいですね。

皆さん色々ありがとうございました。
monnaさんわざわざライブラリを作って下さって感謝しますm(__)m。

本当にありがとうございました。


monaa  2009-04-15 18:16:36  No: 33835

>>Dさん動作確認ありがとうございます。
昨日の書き込み後、バグを一個修正し、D7エラーは除去できました。
こっそり差し替えしておいたのでおそらくDさんがダウンロードしたのは修正後のファイルだと思います。
>>Delphi大好きさん
一応このファイルを最終とさせていただきます。
完全自由変形は私が思ったより難しかったので、完全対応はできずじまいとなりました。
時間をかければ可能かと思いますが、私が使う目的がないので必要な方が挑戦してください。
あと、確か最初の話ではコンパイル対象はD3だったと思いますが、
D3で動作しなかったらご一報ください。
低レベルで書くのは比較的得意なので。TBitmapを使うなとかもOKですし。
報告の際にはエラー文章を丸々うpしてください。
http://www.studio-fe.hiroishi.org/files/BitmapUtil006D7.zip


Delphi大好き  2009-04-16 08:42:39  No: 33836

皆さんありがとうございます、
D3での報告です。

monnaさん本当に何度もありがとうございます、
本当に感謝ですm(__)m。

そのままではストリームが不正ですと出たので、
D2006からD3に移して実行してみました。

以下がその時のエラーメッセージです。

エラー:D:\004D7\UFeDIB32Util.pas(132):[が必要な場所にOFがあります
エラー:D:\004D7\UFeDIB32Util.pas(132):]が必要な場所に;があります
エラー:D:\004D7\UFeDIB32Util.pas(133):OFが必要な場所に識別子pix2があります
エラー:D:\004D7\UFeDIB32Util.pas(133):[が必要な場所にOFがあります
エラー:D:\004D7\UFeDIB32Util.pas(134):OFが必要な場所にBEGINがあります
エラー:D:\004D7\UFeDIB32Util.pas(138):StringとArrayには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(141):ArrayとIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(147):ArrayとIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(152):StringとArrayには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(156):ArrayとIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(157):ArrayとIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(147):ArrayとIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(152):StringとArrayには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(156):ArrayとIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(157):ArrayとIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(159):ArrayとIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(159):ArrayとIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(168):ArrayとIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(259):[が必要な場所にOFがあります
エラー:D:\004D7\UFeDIB32Util.pas(260):OFが必要な場所に識別子aPPiscelがあります
エラー:D:\004D7\UFeDIB32Util.pas(260):.または:が必要な場所に;があります
エラー:D:\004D7\UFeDIB32Util.pas(269):互換性の無い型です
エラー:D:\004D7\UFeDIB32Util.pas(271):ArrayとPIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(280):StringとArrayには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(281):ArrayとPIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(315):ArrayとPIIntegerには互換性がありません
エラー:D:\004D7\UFeDIB32Util.pas(319):変数実パラメータと変数仮パラメータとは同一の型でなければなりません
エラー:D:\004D7\UFeDIB32Util.pas(323):変数実パラメータと変数仮パラメータとは同一の型でなければなりません
エラー:D:\004D7\UFeDIB32Util.pas(332):変数実パラメータと変数仮パラメータとは同一の型でなければなりません
エラー:D:\004D7\UFeDIB32Util.pas(335):変数実パラメータと変数仮パラメータとは同一の型でなければなりません
エラー:D:\004D7\UFeDIB32Util.pas(348):変数実パラメータと変数仮パラメータとは同一の型でなければなりません
致命的エラー:D:\004D7\UFeDIB32Util.pas(6):UFeDIB32Util.pasユニットはコンパイル出来ませんでした。

と出ました。

あと追記ですが、訂正は大変かと思うので、D2006からも実行出来たので、
このままでも大丈夫です^^。
D2006に環境を移して作れば、それで万々歳なので^^;

皆さん本当にありがとうございました、
特にmonnaさんありがとうございます、
感謝の念にたえません。

自分の参考書の読み違いで、機能の勘違いから始まりましたが、
こんな立派なエフェクトを作っていただいて、
本当にありがとうございます。

繰り返しになりますが、
本当にありがとうございましたm(__)m。


TS  2009-04-16 22:14:25  No: 33837

>VCLImageUtilsはエラーは消えたものの、
>本文でもPingimage関連のコマンドがあり、
>それも消していったところ、
>エラーは消えたのですが、機能不十分で実行出来ませんでした^^;

失礼しました、簡単に考えてfunction LoadPngを削除しました。
これはPng専用だと思ったのですが、他は自分でロードして下さい
と言うことみたいです、サンプルをそのまま試そうと思うと
この関数が使用されていたので、これが無いと面白くなかった見たいです。
サンプルのpng形式は駄目ですが、JPG形式で試してみました。

サンプル'img06.png'を適当なJpgファイルに代えて使用して下さい。
 img06.png  -> ????.jpg

uses の  PngImage を jpeg  に変更 

SPIsを使用されれば他の形式のファイルも使えると思います。
これも十分には検証していません、取りあえず下記でJPGファイル
で確認しました、関数の名前は変えた方が良いでしょうが取りあえず、
ここまで。

function LoadPng(bmp: TBitmap; filename: string): Boolean;
var
  //png: TPngObject;
  bmp1:TBitMap;
  Jpeg:TJpegImage;
begin
  //png := TPngObject.Create;
  bmp1:=TBitMap.Create;
  Jpeg :=TJpegImage.Create ;
  try
    try
      //png.LoadFromFile(filename);
      Jpeg.LoadFromFile(filename);
      bmp1.Assign(Jpeg);
      bmp1.PixelFormat := pf24bit;
      //bmp.Assign(png);
      bmp.Assign(Bmp1);
      result := true;
    except
      result := false;
    end;
  finally
    //png.Free;
    Bmp1.Free;
    Jpeg.Free;
  end;
end;


Delphi大好き  2009-04-17 05:28:41  No: 33838

>TSさん

ありがとうございます、
早速試してみました。
テストプログラムはきちんと動きました。
色々ありがとうございますm(__)m。

テスト版は動いたのですが、
http://blog.livedoor.jp/junki560/archives/cat_854169.html
で紹介されているプログラムはエラーで動きませんでした。

HPに最新のVCLImageUtilsは...とあるので、
どうやら、その後更新された、今はダウンロード出来ないバージョンが、
必要みたいです。

な訳で無理みたいです、手間数かけさせてすいません^^;

それでもテスト版は動いたので、感謝です^^

monnaさんのライブラリも含めて、色々いじってみたいと思います。

皆さん重ね重ねありがとうございましたm(__)m。


TS  2009-04-17 06:47:16  No: 33839

>HPに最新のVCLImageUtilsは...とあるので、
>どうやら、その後更新された、今はダウンロード出来ないバージョンが、
>必要みたいです。

あれれ、ダウンロード出来ませんね、私は私のレス後にダウンロードした
つもりでしたが?。

最初のVCLImageUtils
http://blog.livedoor.jp/junki560/archives/29055371.html

後は下記の記事を追加された物だと思います。
http://blog.livedoor.jp/junki560/archives/30287059.html


Delphi大好き  2009-04-18 08:37:41  No: 33840

>TSさん
返信ありがとうございます、
http://blog.livedoor.jp/junki560/archives/30287059.html
のリンクを参考に、
ライブラリやfinctionを集めて書いてみました。
エラーは8→3まで減ったのですが、
どうしても解らないコード名があり、
失敗しました^^;。
自分の技量を超えてるみたいです^^;;。

エラー文のひとつで、検索でParallelogramをあたった所、
唯一ヒットしたのは、
C#(GDI+) : Parallelogram
でした;
C言語っぽい;
ライブラリの作り方も解りませんでした^^;
やはり自分では無理です^^;
本当に皆さんのおかげです^^.
頼りすぎで申し訳ないですが;;

現状でも大満足なので、取り敢えず一応解決という事で^^。
グラフィック、とても難しいんですね^^;
皆さんに大感謝です^^。


TS  2009-04-18 09:41:07  No: 33841

>エラー文のひとつで、検索でParallelogramをあたった所、

Parallelogram は

http://blog.livedoor.jp/junki560/archives/30230470.html
http://blog.livedoor.jp/junki560/archives/30230602.html

その他のエラーもおそらく他のページにコードが有ります。


TS  2009-04-18 22:15:38  No: 33842

私はVCLImageUtils、PngImageをダウンロードしています。
これを公開する立場に無い者ですし、また、junkiさんが
リンク切れに気づかれたらまたダウンロードできる様に
なると思いますが。

「Delphi大好き」さんのメールアドレスが公開されればそこに
送る事は可能です。


Delphi大好き  2009-04-19 00:57:15  No: 33843

TSさんありがとうございます、
頼ってばかりで大変恐縮ですが、
アドのせましたので、よろしくお願いしますm(__)m。

後から検索する人の為に、
何とかリンクから再生する方法探してみたのですが、
自分の技量では無理のようです^^;。

あの後、自分でも探して幾つかfinctionを拾って追加したら、
エラーが一気にに増えました(笑)。

TInterpolationとBilinearFilterが見つからず・・・。
こちらでは、それらしいのは探してもヒットしませんでした;
finctionなのか、そうでないのかも解りません^^;

これを機に、ライブラリの作り方も勉強してみたいと思います。
覚えられたら便利そう^^。

しかし皆さん本当に凄いです、プログラミングはとても奥深いのですね。
自分も技量を何とか磨いていきたいです^^
前に一旦は挫折したのですが、再チャレンジです^^。

それでは大変恐縮ですが、よろしくお願いしますm(__)m。


TS  2009-04-19 04:12:12  No: 33844

メールを送りましたが、スパムメールと思われたみたいでエラーの出た旨の
英文のメールが届きました、と言う事で届いていないと思われます。


Delphi大好き  2009-04-19 04:43:19  No: 33845

先ほどメール開きましたが、
やはり届いていませんでした。

メールの設定を見てみましたが、
解除方法判りませんでした;
設定では、拒否ではなく、迷惑メールでも自動的にゴミ箱とかに行くようになってる筈…
試しにゴミ箱フォルダと迷惑メールフォルダみましたが、
そこにもありませんでした;

因みにあれがメインのアドです。
今試したら、自分の携帯のアドさえ跳ね返されました;
お手数おかけしてすいません、
ソースファイルは諦めます;


yahooo?  2009-04-19 06:01:40  No: 33846

>因みにあれがメインのアドです。
ホントにxxxxxx@yahooo.co.jpなの?
yahooじゃなくてyahooo?

ちなみに、2005/12/12版(多分これが最終版)はココにあるけど。
http://junki.lix.jp/archives/VCLImageUtils.lzh


TS  2009-04-19 07:45:18  No: 33847

「yahooo?」さん紹介ありがとうございます。
私の持っている物よりこれが新しいです。
勘違いしてこの度ダウンロードしたものとばかり思っていました。
「Delphi大好き」さん今度はxxxxxx@yahoo.co.jp
に送りましたが届きましたか。


Delphi大好き  2009-04-19 09:25:19  No: 33848

Yahooo?さん、TSさん、ありがとうございます、
メール受信成功しました。
本当に感謝です^^。
自分のメールアドレスの記述ミスでした^^;

Yahooo?さんありがとうございます、
自分も先ほど入手して、TSさんのコードに書き換えていたところでした。
コンパイルしたら、
Gifimage.pasが必要とのことでしたが、以下で幸運にもダウンロード出来ました。
Gifimage.exe
http://delphi.icm.edu.pl/newl/d30/f047_001.htm

VCLImageUtils.pasはコンパイルに成功したのですが、

http://blog.livedoor.jp/junki560/archives/cat_854169.html
は、まだコンパイルに失敗します。

が、解決しそうなので感謝です^^。
明日またやってみて報告します。


TS  2009-04-19 18:43:34  No: 33849

>TSさんのコードに書き換えていたところでした。
書き換えないで下さい。
VCLImageUtils.pasは新しくなっています。
下記は私がテストした物です。
「yahooo?」さんのおかげです。
「junki」さん改めて感謝します、凄いです。

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  bmp, tmp: TBitmap;
  w, h: array[0..3] of integer;
  bkColor: TColor;
begin
  bmp := TBitmap.Create;
  Bmp:=LoadJpeg(ExtractFilePath(ParamStr(0))
       +'pg_shiho001.jpg');
  w[0] := bmp.Width;
  h[0] := bmp.Height;
  Canvas.Draw(5, 5, bmp);
  bkColor := clRed;
  tmp := BmpClone(bmp);
  if Sharpen(tmp,50) then
    Canvas.Draw(w[1], h[0]+10, tmp);
  tmp := BmpClone(bmp);
  if Invert(tmp) then
    Canvas.Draw(w[1]+150, h[0]+10, tmp);
  tmp := BmpClone(bmp);
  if EdgeEnhance(tmp) then
    Canvas.Draw(w[1]+300, h[0]+10, tmp);
  tmp := BmpClone(bmp);
  if Rotate90(tmp, true) then
    Canvas.Draw(w[1]+450, h[0]+10, tmp);
  tmp.Free;  
  bmp.Free;
end;


Delphi大好き  2009-04-19 20:09:11  No: 33850

TSさんの書いたコードで、早速試してみました。
が、PngImageがありませんと跳ね返されたので、
pngimageのところはコメントアウトしてみました。
これでいいのでしょうか?

そうしたところ、実行は可能になりました^^。

皆さんに感謝です^^。


Delphi大好き  2009-04-20 03:44:54  No: 33851

メール再度見ました^^
添付ファイル見落としてました^^;
ご指南ありがとうございます、
TSさんのサンプルは無事動きました^^

が、めもにゃんだむさんのコードは、
未だバグが出ます…。
全て揃ってるはずなのに、謎です;

因みにコンパイル環境は、XPSP3  D2006(無償版)です。
無償版では付いてない機能を使ってるから??
謎です^^;。

後から検索する人の為に一応整理^^

めもにゃんだむさん  VCL TBitmap Trimming
http://blog.livedoor.jp/junki560/archives/cat_854169.html

めもニャンだむさん  Delphi 関連への目次http://blog.livedoor.jp/junki560/archives/30287059.html

めもにゃんだむさん  VCLImageUtils(最終版?)
http://junki.lix.jp/archives/VCLImageUtils.lzh

VCLImageUtilsで必要になるファイル  Gifimage.pas
http://delphi.icm.edu.pl/newl/d30/f047_001.htm

pingfile.pas
ネット上では見つからず^^;
その部分をコメントアウトしたらバグは消えました^^。
Pingを使わなければ大丈夫との事でした。


Delphi大好き  2009-04-21 08:25:24  No: 33852

と、
TSさん作のライブラリ初版
http://www.studio-fe.hiroishi.org/files/BitmapUtil004D7.zip
TSさん作のライブラリ最終版
http://www.studio-fe.hiroishi.org/files/BitmapUtil006D7.zip
埋もれてしまったので、まとめさせていただきましたm(__)m。

↑わざわざ作っていただき、本当にありがとうございました。
たった数日で、本当に凄いです(驚)。
早速組み込んで、大切に使わせていただきますm(__)m。


Delphi大好き  2009-04-21 11:23:10  No: 33853

↑ごめんなさい、名前間違えました!;
ふと先ほど突発的に思い出し、気が付きました;;
TSさんではなく、monnaさんの間違いです(汗;

おおぼけかましてすいませんm(__)m;

正しくは、
monnaさん作のライブラリ初版
http://www.studio-fe.hiroishi.org/files/BitmapUtil004D7.zip
monnaさん作のライブラリ最終版
http://www.studio-fe.hiroishi.org/files/BitmapUtil006D7.zip
です。

monnaさん大変失礼しましたm(__)m(大汗;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加